Ich versuche Firebase Cloud Messaging mit Angular2 zu verwenden, aber es ist so, als wollten sie nicht, dass wir @Google machen.FCM getToken() gibt nichts zurück
Ich habe this und this verfolgt, um Fehler zu stoppen.
bin vor mir jetzt folgendes Problem: Warum messaging.getToken()
nichts zurückkehrt? Kein Fehler, kein Token in der Konsole, nichts.
Jede Hilfe ist mehr als willkommen. Vielen Dank.
EDIT Ich habe den Code unten mit meinem Versuch aktualisiert mit onTokenRefresh()
. Es ändert nichts. Ich glaube, es kommt von der Tatsache, dass ich nicht wirklich an meine Firebase-Dateien angeschlossen bin. Hat es jemand geschafft, FCM mit Angular2 und AngularFire2 zu machen?
import {Component, OnInit, Inject} from '@angular/core';
import { FirebaseApp } from "angularfire2";
import * as firebase from 'firebase';
@Component({
templateUrl: './+config.component.html',
styleUrls: ['./+config.component.scss']
})
export class UserConfigComponent implements OnInit {
private _messaging: firebase.messaging.Messaging;
constructor(@Inject(FirebaseApp) private _firebaseApp: firebase.app.App) {
this._messaging = firebase.messaging();
}
ngOnInit() {
// Callback fired if Instance ID token is updated.
this._messaging.onTokenRefresh(function() {
this._messaging.getToken()
.then(function(refreshedToken) {
console.log('Token refreshed.', refreshedToken);
})
.catch(function(err) {
console.log('Unable to retrieve refreshed token ', err);
});
});
}
requestPushNotif() {
this._messaging.requestPermission()
.then(() => {
console.log('have permission');
return this._messaging.getToken();
})
.then(function(token) {
console.log(token);
})
.catch((error) => {
console.log(error);
});
}
}
Das Token wird möglicherweise nicht erzeugt, wenn Sie 'getToken()' aufrufen. Deshalb müssen Sie auch 'onTokenRefresh()' implementieren. Siehe https://firebase.google.com/docs/cloud-messaging/js/client#monitor-token-refresh –
Vielen Dank, dass Sie darauf hingewiesen haben. Ich habe es versucht, aber ohne mehr Glück. Ich habe meine erste Nachricht bearbeitet. Habe ich etwas verpasst? – Tom
Hmmm .... in diesem Fall weiß ich nicht. Ich habe FCM.js nicht mit eckigen selbst ausprobiert, aber diese Kombination sollte keinen Unterschied machen. Kannst du eine Jsbin einrichten, die das Problem für dich reproduziert, damit ich es ausprobieren kann? –