带有 ReactJS 和 Webpack 的 Firebase FCM 无法正常工作:我们无法注册默认服务工作者

Posted

技术标签:

【中文标题】带有 ReactJS 和 Webpack 的 Firebase FCM 无法正常工作:我们无法注册默认服务工作者【英文标题】:Firebase FCM with ReactJS and Webpack not working: We are unable to register the default service worker 【发布时间】:2018-06-21 23:40:44 【问题描述】:

与几乎相同问题的相关问题:Firebase FCM React project issue - firebase-messaging-sw.js wrong type?

这个问题或任何其他问题的答案对我都不起作用,下面是项目树的屏幕截图,其中包含 firebase-messaging-sw.js 文件,因为添加它是解决此问题的建议。

我想知道我是否只是做错了,或者为什么我无法注册 sw 以供 firebase 使用。

来自开发者工具控制台的原始错误: “注册 ServiceWorker 失败:获取脚本时收到错误的 HTTP 响应代码 (404)。”

【问题讨论】:

SW 安装应通过 2 个条件,1st 站点应使用 https/localhost 2nd 您应包括 service_worker.js。你包括service_worker.js..? 如何在本地主机上获得 SSL 证书?包含 service_worker.js 是什么意思?比如是我必须下载的库还是什么? 抱歉这个 https/localhost ...它是https or localhost ...!您的 firebase-messaging-sw.js 将有助于获取 FCM 推送通知,您必须单独包含 service-worker.js 文件。 查看此文档developers.google.com/web/updates/2015/03/… 这是 sw.js developers.google.com/web/fundamentals/codelabs/…的详细说明 【参考方案1】:

作为对这个问题的回答,这是我的另一篇文章,我自己也设法解决了。 FirebaseError - messaging/failed-serviceworker-registration

所以基本上使用一个非常特定版本的 webpack-dev-server,添加一个可以具有任何名称的 sw 文件,并将该文件注册为服务工作者以便 fireabse 在我的 firebase 消息传递初始化文件中使用,我设法得到使用 webpack 的 firebase 云消息传递。 webpack-dev-server 的版本是 2.11.0。

希望这可以帮助解决此问题的任何人。

【讨论】:

以上是关于带有 ReactJS 和 Webpack 的 Firebase FCM 无法正常工作:我们无法注册默认服务工作者的主要内容,如果未能解决你的问题,请参考以下文章

带有热重载的 ReactJS 服务器端渲染 (webpack-dev-server)

ReactJS 和 Webpack 模块联合应用程序在部署到云端时包含未定义的 url

如何使用带有羽毛/快递的 webpack-dev-middleware?

ReactJs - 将带有嵌套 React 组件的原始 HTML 转换为 JSX

如何使用带有 webpack 的 npm install 来使用 normalize.css?

导出默认不工作的webpack,reactjs