FCM推送通知在本地有效,但在服务器上无效

时间:2018-09-16 07:57:31

标签: javascript php firebase firebase-cloud-messaging

我一直在努力使推送通知有效。 我收到以下错误

  

; FirebaseError:消息传递:我们无法注册默认服务工作者。无法注册ServiceWorker:获取脚本时收到错误的HTTP响应代码(404)。 (消息/服务工作人员注册失败)。

我已经尝试过Google并申请了https://stackoverflow.com/a/42264578/5192105

但是它仍然可以在本地运行,但不能在server上运行。 js文件firebase-messaging-sw.js存在于以下路径中:https://mobile-app.golocall.com/api/src/public/firebase-messaging-sw.js

我已经使用slim-php作为后端框架。

请帮助我解决错误。

1 个答案:

答案 0 :(得分:1)

它尝试在应用程序的根目录中找到服务工作者文件;因此应用程序尝试加载

https://mobile-app.golocall.com/firebase-messaging-sw.js

而实际文件位于

https://mobile-app.golocall.com/api/src/public/firebase-messaging-sw.js

编辑:
您可能可以像这样导入服务工作者:

importScripts('https://www.gstatic.com/firebasejs/4.8.1/firebase-app.js');
importScripts('https://www.gstatic.com/firebasejs/4.8.1/firebase-messaging.js');

如果这不起作用,则可能需要声明自己的服务工作者。

以下是有关该主题的更多信息的链接:
https://firebase.google.com/docs/cloud-messaging/js/receive