Firebase 云消息传递仅适用于本地主机

Posted

技术标签:

【中文标题】Firebase 云消息传递仅适用于本地主机【英文标题】:Firebase Cloud Messaging works only from localhost 【发布时间】:2019-06-12 06:53:30 【问题描述】:

我已经实现了 Firebase 云消息传递 - 将通知推送到我的 spring-boot Web 应用程序。一切正常,直到我需要将应用程序部署到 Web 服务器或从网络中的另一个域运行它。即使我尝试打开 :port 而不是 localhost:8080,也无法识别 firebase-messaging..

我在控制台中收到以下错误消息:

code: "messaging/unsupported-browser", message: "Messaging: This browser does not support the API's …he firebase SDK. (messaging/unsupported-browser).", stack: "FirebaseError: Messaging: This browser doesn't sup ... at http://192.168.1.3:8080/js/FireBase.js:14:28"code: "messaging/unsupported-browser"message: "FirebaseError: Messaging: This browser does not support the API's required to use the firebase SDK. (messaging/unsupported-browser) .↵ 在 Object.messaging (https://www.gstatic.com/firebasejs/5.7.0/firebase-messaging.js:1:35551)

未捕获的 ReferenceError:未定义消息传递..

FireBase.js 第 14 行是:

// Retrieve the FireBase Messaging object.
const messaging = firebase.messaging();

我整天都在搜索它,但我找不到任何合适的解决方案..

如果有任何建议,我将非常感谢!

【问题讨论】:

【参考方案1】:

您需要检查一些实例。 首先,确保您的浏览器是最新的。 其次,在您的浏览器(尤其是 Chrome)上测试不带任何扩展程序的 Firebase。 第三,上网时,首选HTTPS而不是HTTP。所以它带有与 SSL 相关的问题。

请查看检查浏览器是否具有必要的 API 的代码firebase-js-sdk-

PS:要立即测试,只需在 Try/Catch 中插入代码即可。

[edit]:如果你不想做 try/catch 语句,请考虑this

【讨论】:

感谢您的回答。我的浏览器支持数据(在 MacOS 上)。我在 Chome 上没有任何扩展。我没有上网,在输入我的 ip 和端口时从我的机器(localhost)访问应用程序的事件,它显示此错误。它仅在我打开 localhost 时才有效。我在 Try/Catch 中插入了代码,我收到了同样错误的异常... 我正在尝试使用自签名证书启用 HTTPS。问题是 SSL。 Firebase 不适用于 HTTP。现在 HTTPS 出现问题。几乎尝试了所有方法,从教程thomasvitale.com/https-spring-boot-ssl-certificate 中完成。错误消息:获取脚本时发生 SSL 证书错误。加载资源失败:net::ERR_CERT_COMMON_NAME_INVALID 既然你已经发现问题出在HTTPS,那么你可以考虑这个解决方案here 谢谢!显然问题出在 SSL 证书中,因为我使用的是自签名证书。我阅读了该链接中的建议,但我无法修复它。我应该在哪里放置此证书?这真的可以与那种证书一起使用吗.. 你应该使用有效的证书,你应该购买或者如果它不是一个通配符你可以使用让我们免费加密。 letsencrypt.org

以上是关于Firebase 云消息传递仅适用于本地主机的主要内容,如果未能解决你的问题,请参考以下文章

FirebaseMessaging.onMessage.listen() 仅适用于通知消息

Firebase 云消息传递未在 iOS 14 上提供推送通知

Firebase 云消息传递 - PHP Rest API 不适用于 iOS

无法将iOS CriticalAlert发送到Firebase云消息传递

使用 Firebase 云消息传递,还是让应用通过 API 请求事件和触发通知?

Firebase 云消息传递多个设备和一个帐户