Реакция firebase недоступна в окне ошибки - PullRequest
0 голосов
/ 08 октября 2019

Я пытаюсь включить 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мне нужен другой работник службы?

...