Firebase — getToken() выдает Неподдерживаемый тип MIME

# #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 файл в общий каталог решил вышеуказанную проблему.