Firebase云消息传递仅在本地主机上运行

3
我已经将 Firebase Cloud Messaging - 推送通知集成到我的 Spring Boot Web 应用程序中。一切正常,直到我需要将应用程序部署到 Web 服务器或从网络中的另一个域运行它。即使我尝试打开 :port 而不是 localhost:8080,firebase-messaging 也无法识别。
我在控制台中收到以下错误消息:

{code: "messaging/unsupported-browser", message: "Messaging: 该浏览器不支持使用Firebase SDK所需的API(messaging/unsupported-browser)。", stack: "FirebaseError: Messaging: 该浏览器不支持使用Firebase SDK所需的API(messaging/unsupported-browser)。在http://192.168.1.3:8080/js/FireBase.js:14:28处"}code: "messaging/unsupported-browser"message: "FirebaseError: Messaging: 该浏览器不支持使用Firebase SDK所需的API(messaging/unsupported-browser)。↵ 在Object.messaging (https://www.gstatic.com/firebasejs/5.7.0/firebase-messaging.js:1:35551)处"

未捕获的引用错误:messaging未定义。

FireBase.js的第14行是:

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

我整天搜索了关于它的信息,但是我找不到任何适当的解决方案。

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

1个回答

1

有一些情况需要检查。 首先,请确保您的浏览器已经更新到最新版本。 其次,在浏览器上特别是Chrome上测试Firebase时,请不要使用任何扩展。 第三,上线时请优先使用HTTPS而非HTTP。因此会涉及到SSL相关问题。

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

提示:如果要立即进行测试,请将您的代码插入Try/Catch中。

[编辑]: 如果您不想编写try/catch语句,请考虑this


谢谢您的回答。我的浏览器是最新版本(在MacOS上)。我没有在Chrome上安装任何扩展程序。我并没有在线访问应用程序,甚至是从我的机器(本地主机)访问时,在键入我的IP和端口时,它显示此错误。只有当我打开本地主机时才能正常工作。我将代码插入到Try/Catch中,但我收到了相同错误的异常... - Georgi
我正在尝试使用自签名证书启用HTTPS。问题在于SSL。Firebase不支持HTTP。 现在HTTPS出了问题。几乎尝试了所有方法,都是从教程https://www.thomasvitale.com/https-spring-boot-ssl-certificate/中学来的。错误信息: 获取脚本时发生SSL证书错误。 无法加载资源:net :: ERR_CERT_COMMON_NAME_INVALID - Georgi
既然你已经确定问题是HTTPS,那么你可以考虑这个解决方案在这里 - Roshan
谢谢!问题肯定在SSL证书上,因为我正在使用自签名证书。我阅读了那个链接中的建议,但我没有能够解决它... 我应该把这个证书放在哪里?这种证书真的可以使用吗? - Georgi
您应该使用有效的证书,您可以购买或者如果不是通配符证书,您可以免费使用 Let's Encrypt。https://letsencrypt.org/ - Roshan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接