Я хочу добавить облачную передачу сообщений Firebase в мое приложение nuxt.js, которое использует рабочий ящик для интеграции функций pwa. Проблема заключается в том, что для fcm требуется рабочий-сервис ( firebase-messaging-sw.js ), который обрабатывает входящие сообщения, но рабочий ящик также использует рабочий-сервис ( sw.js ) для предоставления функций pwa.
Поскольку один сайт может обрабатывать только одного работника сервиса, я попытался использовать работника сервиса workbox ( sw.js ) для firebase:
navigator.serviceWorker.register('/sw.js')
.then((registration) => {
fcm.useServiceWorker(registration)
})
.catch(err => {
console.error(err);
})
и копировать кодиз firebase-messaging-sw.js в sw.js :
importScripts('https://www.gstatic.com/firebasejs/6.3.4/firebase-app.js');
importScripts('https://www.gstatic.com/firebasejs/6.3.4/firebase-messaging.js');
const config = {
messagingSenderId: "12345",
}
!firebase.apps.length ? firebase.initializeApp(config) : ''
const messaging = firebase.messaging()
Но каждый раз, когда я строю проект с nuxt, sw.jsФайл перезаписывается, а код, который я скопировал для обработки входящих сообщений, пропал.
Какое лучшее решение использовать рабочий ящик вместе с fcm?