Ich erstelle eine Chrome-Erweiterung, die Push-Benachrichtigungen empfangen kann. Eine Alternative wäre das Abfragen des Servers alle X Sekunden, aber das scheint keine gute Wahl zu sein. Aus diesem Grund habe ich Firebase gewählt. Die benutzerdefinierte JWT-Token-Authentifizierung scheint erledigt und funktioniert. Der nächste Schritt besteht darin, das Registrierungs-Token abzurufen und dieses an den Server zu senden.Chrome Extension & FCM Registrierungs-Token abrufen
Das Problem:
Das Token scheint nie abgerufen werden:
var config = {
apiKey: "<KEY>",
authDomain: "<DOMAIN>",
messagingSenderId: "<SENDER_ID>"
};
var app = firebase.initializeApp(config);
var messaging = firebase.messaging(app);
function initApp() {
firebase.auth().onAuthStateChanged(function(user) {
if(user) {
// Update UI
fetchToken();
} else {
// no user is signed in
}
});
}
function fetchToken() {
messaging.requestPermission()
.then(function() {
messaging.getToken()
.then(function(currentToken) {
if (currentToken) {
sendRegistrationTokenToServer(currentToken);
} else {
console.log('No token available')
}
})
.catch(function(err) {
console.debug('An error occurred while retrieving token. ', err);
});
}).catch(function(err) {
console.log('Notification permissions denied.', err);
});
firebase.messaging().onTokenRefresh(function() {
messaging.getToken()
.then(function(refreshedToken) {
sendRegistrationTokenToServer(refreshedToken);
console.log('Token refreshed')
})
.catch(function(err) {
console.log('Unable to retrieve refreshed token', err);
});
});
}
$(document).ready(function() {
initApp();
// some other stuff
});
Weiß jemand, warum das Token nicht geholt wird?
In der Entwicklerkonsole (zum Abrufen des Tokens) ist keine Netzwerkaktivität zu sehen. Es wird auch kein Fehler gedruckt. Ich sehe jedoch Netzwerkaktivität für getAccountInfo?key=<somekey>
, die eine idToken
damit trägt, obwohl ich nicht sicher bin, dass dies eine verwandte Anfrage ist (Antwort scheint kein Token zurückzugeben).
Ich habe das gleiche Problem. Es ist die 'requestPermission', die nichts zurückgibt. –