【问题标题】:Firebase - getToken() throws Unsupported MIME typeFirebase - getToken() 抛出不受支持的 MIME 类型
【发布时间】:2021-12-23 05:58:13
【问题描述】:

我有一个 react-create-app 应用程序,其中我使用 firebase 进行推送通知。最近我将 firebase 从 8.* 升级到了 9.*。在获取推送令牌时,它会抛出以下错误:

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) => {
            if (currentToken) {
              console.log('current token for client: ', currentToken);
            } else {
              console.log('No registration token available. Request permission to generate one.');
            }
          }).catch((err) => {
            console.log('An error occurred while retrieving token. ', err);
          });
        })
        .catch(function(err) {
          console.log("Service worker registration failed, error:", err);
        });
        }}

我该如何解决这个问题?

【问题讨论】:

    标签: reactjs firebase firebase-cloud-messaging service-worker


    【解决方案1】:

    将 firebase-messaging-sw.js 文件移动到公共目录解决了上述问题。

    【讨论】:

      猜你喜欢
      • 2019-08-06
      • 2020-05-31
      • 1970-01-01
      • 2021-05-29
      • 2019-09-16
      • 2021-06-12
      • 1970-01-01
      • 2021-12-18
      • 2020-03-20
      相关资源
      最近更新 更多