Я пытаюсь использовать Firebase Cloud Messaging с Angular2, но это похоже, что они не хотят, чтобы мы это @Google.FCM getToken() ничего не возвращает
Я слежу this и this, чтобы иметь возможность остановить ошибки.
У меня возникла следующая проблема: Почему messaging.getToken()
ничего не возвращает? Ошибка, нет токена в консоли, ничего.
Любая помощь более чем приветствуется. Спасибо.
EDIT Я обновил нижеследующий код с помощью моей попытки, используя onTokenRefresh()
. Это ничего не меняет. Я чувствую, что это происходит из-за того, что я на самом деле не подключен к моим файлам firebase. Кто-нибудь смог сделать FCM с Angular2 и AngularFire2?
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, который воспроизводит проблему для вас, чтобы я мог попробовать? –