Я использую Google Workbox для некоторых автономных функций и кэширования в моем angular 9, приложении. Для сообщений pu sh мы используем Google Firebase .
. После обновления веб-приложения до Vue. js при доступе к веб-сайту появляется ошибка:
Uncaught FirebaseError: Messaging: Мы не можем зарегистрировать работника службы по умолчанию. Не удалось зарегистрировать ServiceWorker для области ('https://my-domain.com/firebase-cloud-messaging-push-scope') с помощью сценария ('https://my-domain.com/firebase-messaging-sw.js'): сценарий имеет неподдерживаемый тип MIME ('text / html) «). (сообщение / сбой-служба-регистрация работника).
Да, в каталоге root нет firebase-messaging-sw. js.
Все должно обрабатываться Workbox.
Я следовал документации, чтобы использовать существующего сервисного работника для регистрации с помощью функции useServiceWorker()
, но это вызывает указанную ошибку.
import * as firebase from 'firebase/app';
import 'firebase/messaging';
import { Workbox } from 'workbox-window';
import { environment } from './environments/environment';
...
if ('serviceWorker' in navigator && environment.production) {
const scope = window.location.origin + window.location.pathname.split('/').slice(0, 3).join('/');
const wb = new Workbox('/my-worker.js', { scope: scope });
wb.register().then(reg => {
if (!firebase.apps.length) {
firebase.initializeApp(environment.firebase);
}
if (firebase.messaging.isSupported()) {
firebase.messaging().useServiceWorker(reg);
}
reg.update();
}).catch(err => console.log(err));
}
Do Мне нужен firebase-messaging-sw. js?