Я пытался интегрировать FCM с расширением Chrome, которое я делаю.В моем файле рабочего сервиса (firebase-messaginng-sw.js) я получаю следующую ошибку:
FirebaseError: Messaging: этот метод доступен в контексте работника сервиса.(Messaging / Only-Available-In-SW).
Ниже приведены соответствующие фрагменты кода.
manifest.json
"permissions": ["tabs", "storage", "notifications"],
"background": {
"scripts": ["./lib/firebase/firebase-app.js",
"./lib/firebase/firebase-auth.js",
"./lib/firebase/firebase-messaging.js",
"./background.js"
]
},
background.js
const messaging = firebase.messaging();
messaging.usePublicVapidKey("XXXXXX");
const currentToken = await messaging.getToken();
console.log(`Current token ${currentToken}`);
if ('serviceWorker' in navigator) {
await navigator.serviceWorker.register('./firebase-messaginng-sw.js');
initialiseState();
} else {
console.warn('Service workers aren\'t supported in this browser.');
}
firebase-messaginng-sw.js
firebase.initializeApp({
'messagingSenderId': '111111111'
});
const messaging = firebase.messaging();
messaging.setBackgroundMessageHandler(function(payload) {
console.log('[firebase-messaging-sw.js] Received background message ', payload);
const notificationTitle = 'Background Message Title';
const notificationOptions = {
body: 'Background Message body.',
icon: './public/icon.png'
};
return self.registration.showNotification(notificationTitle,
notificationOptions);
});
Вся часть интеграции была довольно сложнойдля меня многие ресурсы онлайн устарели или не работают для расширений.Если бы вы могли также направить меня к какому-либо руководству специально для этого, это было бы удивительно.