Ich versuche Firebase Cloud Messaging. Es ist großartig und alles, aber ich habe die schwierigste Zeit, es für mich arbeiten zu lassen.Firebase messaging.setBackgroundMessageHandler empfängt keine Nachrichten
Das Problem, das ich bin vor ist mit dem Service-Arbeiter, hier ist mein firebase-messaging-sw.js
:
console.log('Service worker is loaded!');
self.addEventListener('install', function(event) {
console.log('Service Worker is being installed.');
});
self.addEventListener('activate', function(event) {
console.log('Service Worker is being activated.');
});
importScripts('https://www.gstatic.com/firebasejs/3.6.5/firebase-app.js');
importScripts('https://www.gstatic.com/firebasejs/3.6.5/firebase-messaging.js');
firebase.initializeApp({
'messagingSenderId': ' ... '
});
var messaging = firebase.messaging();
messaging.setBackgroundMessageHandler(function(payload){
console.log('Received background message: ', payload);
return self.registration.showNotification('Title', {'body': 'Body'});
});
Wenn ich eine Nachricht senden (I PHP-FCM BTW bin mit) die Nachricht wie erwartet im Browser empfangen wird, wenn die Seite wird durch onMessage(...)
im Fokus, aber nie, wenn die Seite nicht im Fokus oder der Browser geschlossen ist; Der Service-Mitarbeiter empfängt die Nachricht einfach nicht!
Die Zeile "Empfangene Hintergrundmeldung: ..." wird nie angezeigt; was bedeutet, dass der Message-Handler überhaupt nicht registriert wurde!
Hier ist eine Beispielmeldung Antwort:
{
"from": " ... ",
"collapse_key": "do_not_collapse",
"data": {
"id": "111"
},
"priority": "high",
"notification": {
"title": "Hi there",
"body": "Message body",
"badge": "1",
"color": "#ffffff"
}
}
Was hier das Problem sein könnte? Es macht mich verrückt.