# #reactjs #firebase #firebase-cloud-messaging #service-worker
Вопрос:
У меня есть приложение react-create-app, в котором я использовал firebase для pushnotification. Недавно я обновил firebase с 8.* до 9.*. При получении push-токена возникает следующая ошибка:
FirebaseError: Messaging: We are unable to register the default service worker. Failed to register a ServiceWorker for scope ('https://9fd5-49-204-137-92.ngrok.io/firebase-cloud-messaging-push-scope') with script ('https://9fd5-49-204-137-92.ngrok.io/firebase-messaging-sw.js'): The script has an unsupported MIME type ('text/html'). (messaging/failed-service-worker-registration).
В firebase.js, У меня есть следующий набор кода, который выдает вышеупомянутую ошибку
import { initializeApp } from "firebase/app" import { getToken, getMessaging, onMessage } from "firebase/messaging"; const message_key = "key" var firebaseConfig = { apiKey: "apikey", authDomain: "authdomain", projectId: "project-app", storageBucket: "******.com", messagingSenderId: "id", appId: "appid", measurementId: "mid" }; const firebaseApp = initializeApp(firebaseConfig); let messaging = getMessaging(firebaseApp); if ("serviceWorker" in navigator) { navigator.serviceWorker.register(process.env.PUBLIC_URL "/firebase-messaging-sw.js") .then(function(registration) { console.log("Registration successful, scope is:", registration); getToken({messaging, vapidKey: message_key}) .then((currentToken) =gt; { if (currentToken) { console.log('current token for client: ', currentToken); } else { console.log('No registration token available. Request permission to generate one.'); } }).catch((err) =gt; { console.log('An error occurred while retrieving token. ', err); }); }) .catch(function(err) { console.log("Service worker registration failed, error:", err); }); }}
Как я могу решить эту проблему?
Ответ №1:
Переезд firebase-messaging-sw.js файл в общий каталог решил вышеуказанную проблему.