Расширение FCM Chrome: этот метод доступен в контексте работника сервиса.(Сообщений / только доступный в-SW) - PullRequest
0 голосов
/ 29 сентября 2019

Я пытался интегрировать 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);
  });

Вся часть интеграции была довольно сложнойдля меня многие ресурсы онлайн устарели или не работают для расширений.Если бы вы могли также направить меня к какому-либо руководству специально для этого, это было бы удивительно.

...