私はAngular2でFirebase Cloud Messagingを使用しようとしていますが、私たちが@Googleをやりたいとは思わないようです。FCM getToken()は何も返しません
エラーを停止できるように、私はthisとthisに従っています。
私は今、次の問題に直面しています: messaging.getToken()
は何も返しません。 エラーはありません。コンソールにはトークンがありません。何もありません。
何か助けが歓迎されています。ありがとうございました。
編集 onTokenRefresh()
を試してコードを更新しました。それは何も変わらない。私は実際に私が自分のファイヤーベースファイルに接続されていないという事実から来ているように感じます。誰でもAngular2とAngularFire2でFCMを作成できましたか?
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);
});
}
}
'getToken()'を呼び出す前にトークンがまだ生成されていない可能性があります。そのため、onTokenRefresh()も実装する必要があります。 https://firebase.google.com/docs/cloud-messaging/js/client#monitor-token-refresh –
これを指摘していただきありがとうございます。私はそれを試したが、運がなければ。私は最初のメッセージを編集しました。私は何か見落としてますか? – Tom
こんにちは。その場合は分かりません。私はFCM.jsを自分自身で試してみませんでしたが、その組み合わせは何の違いもありません。私はそれを試すことができるように、問題を再現するjsbinを設定できますか? –