Я пытаюсь включить push-уведомление firebase в ответ. я включил файл службы сообщений Firebase в публичный файл, а также зарегистрировал другой файл службы. но каким-то образом не в состоянии сказать Firebase, что используют другого работника службы
, пожалуйста, обратитесь к работнику службы сообщений Firebase
importScripts('https://www.gstatic.com/firebasejs/5.6.0/firebase-app.js');
importScripts('https://www.gstatic.com/firebasejs/5.6.0/firebase-messaging.js');
firebase.initializeApp({
messagingSenderId: '--my sender id--'
});
const messaging = firebase.messaging();
messaging.setBackgroundMessageHandler(function (payload) {
console.log('[firebase-messaging-sw.js] Received background message ',
payload);
const promiseChain = clients
.matchAll({
type: "window",
includeUncontrolled: true
})
.then(windowClients => {
for (let i = 0; i < windowClients.length; i++) {
const windowClient = windowClients[i];
windowClient.postMessage(payload);
}
})
.then(() => {
return registration.showNotification("my notification title");
});
return promiseChain;
});
messaging.onMessage(function (payload) {
console.log('messaging', payload);
})
Проблема с приведенным выше кодом, я продолжаю получать эту ошибку: Сообщения: Этот методдоступно в контексте окна.
i index.html файл, я включил работника службы
<script>
if ("serviceWorker" in navigator) {
navigator.serviceWorker
.register("./firebase-messaging-sw.js")
.then(function (registration) {
console.log("Registration successful, scope is:", registration.scope);
})
.catch(function (err) {
console.log("Service worker registration failed, error:", err);
});
}
У меня также есть еще одно сомнение, что если я хочу сделать свой веб-сайт PWAмне нужен другой работник службы?