【发布时间】:2018-11-21 00:50:12
【问题描述】:
更新:Google 错误报告说明
(正如谷歌开发倡导者在 cmets 中对答案 1 的建议,提交了错误报告;在此处更新内容,因为它更简洁准确地描述了问题)
我不需要或不想向我的用户显示任何通知。许多用户不愿意授予通知权限,因为他们认为他们会开始看到通知。
但我希望将数据从服务器推送到我的网页。该网页处于活动状态并位于前台。这是 Web Sockets 设计的经典用例。
我知道我可以编写自己的 Web 套接字服务器并尝试以某种方式对其进行扩展,或者向其他第三方寻求外包的可扩展 Web 套接字推送解决方案。
但是,这不是 Firebase 消息传递所针对的消息传递的一个非常常见的“子用例”吗?因此谷歌不应该支持这个用例吗?我看不到任何基本的技术障碍,但由于 Google 非常聪明,如果我遗漏了为什么不能或不应该这样做的原因,请赐教。
原始 StackOverflow 问题文本:
我不需要后台通知或服务人员。我想要的只是在当前加载并在前台时将数据发送到网页。
Websockets 不需要任何权限,但它们需要一个 websocket 服务器和维护。扩展它既困难又昂贵。
Firebase 从根本上解决了这个问题,但我不明白为什么它必须要求用户授予通知权限,即使我只想在页面加载时推送数据;不在后台。
【问题讨论】:
-
我也遇到了同样的问题,你最后用的是什么解决方案?
-
当应用程序处于前台时,昂贵的解决方案是使用 Cloud Firestore 通知(长轮询、Web 套接字)而不是 Push API。根本原因似乎是当权者想要杀死 Web 应用程序以支持移动应用程序,因此 Push API 规范要求从用户那里获得“显示通知权限”,即使一个人永远不会显示通知并且只接收异步通知。
-
你知道这方面的任何代码示例吗?如果您有这方面的经验,您愿意进一步帮助我吗?
-
您能否链接到此错误报告以供我们投票?
-
@D2TheC 同样,显然 google firebase 团队成员在下面回答了这个问题(doug stevens),引起他们注意的一种方法是在他的回答中添加评论,看看他们是否可以接受说服。
标签: firebase websocket firebase-cloud-messaging