消息传递和 Firebase 托管中的 Firebase Service Worker 错误

Posted

技术标签:

【中文标题】消息传递和 Firebase 托管中的 Firebase Service Worker 错误【英文标题】:Firebase Service worker error in Messaging and Firebase Hosting 【发布时间】:2021-03-16 06:53:12 【问题描述】:

我想创建一个迷你网络应用来测试用于网络应用的 Firebase 云消息传递。我想使用 Firebase 托管来托管我的网络应用。

错误:

在允许弹出通知后在我的浏览器上,我得到了这个 错误:

FirebaseError:消息:我们无法注册默认值 服务人员。无法为范围注册 ServiceWorker ('https://XXXX.firebaseapp.com/firebase-cloud-messaging-push-scope') 使用脚本('https://XXXX.firebaseapp.com/firebase-messaging-sw.js'): 获取脚本时收到错误的 HTTP 响应代码 (404)。 (消息传递/失败的服务工作者注册)。

标题

代码:

var firebaseConfig = 

  apiKey: "",
  authDomain: "",
  databaseURL: "",
  projectId: "",
  storageBucket: "",
  messagingSenderId: "",
  appId: "",
  measurementId: ""
;

firebase.initializeApp(firebaseConfig);

const messaging = firebase.messaging();

messaging.requestPermission()

  .then(function() 
    return messaging.getToken();
  ).then(function(token) 
    console.log(token)

  ).catch(function(err) 
    console.log(err);
  )

【问题讨论】:

navigator.serviceWorker.register('./sw.js').then((registration) => messing.useServiceWorker(registration); messing.requestPermission() .then(function () return messing.getToken(); ).then(function (token) console.log(token) ).catch(function (err) console.log(err); ); ); 添加“navigator.serviceWorker.register”然后正常工作:p 【参考方案1】:

您的firebase-messaging-sw.js 似乎在您的服务器 根目录中不可用。

【讨论】:

firebase-messaging-sw.js 它在根目录下可用,但仍然无法正常工作

以上是关于消息传递和 Firebase 托管中的 Firebase Service Worker 错误的主要内容,如果未能解决你的问题,请参考以下文章

GCM不使用Firebase

firebase 部署后“发生意外错误”

Flutter sendMessage()中的Firebase消息传递

IOS 应用程序中的 Firebase 云消息传递 (FCM) 无法正常工作

Firebase 与 Android Java 中的 Google 云消息传递

Firebase 云消息传递为一组用户发送通知