【发布时间】:2016-12-26 01:47:08
【问题描述】:
我需要澄清一下。
我正在使用 Firebase 实时数据库。
现在我要在两个安卓设备之间实现实时聊天。我还需要推送通知。
所以,基于实时数据库的解决方案是放弃,因为如果应用没有运行,它不会处理onChildAdded事件。
我阅读了文档,我可以使用从设备到服务器的上游消息来实现我的目标。
现在,还写到我们需要一个应用服务器。
我只是想澄清一下应用服务器(XMPP或HTTP)的需求,即设备A发送的消息m1的整个流程,以及设备B上的通知。
在我看来,应用服务器应该充当中间人,所以:
A ---> XMPP 服务器 ---> FCM
FCM ---> XMPP 服务器 ---> B
这是流量吗? 在文档上,我不明白我是否正确。 如果是这样,我如何将消息从 FCM 发送回 XMPP 服务器? 通知消息是从 FCM 发送到客户端还是从 XMPP Server 发送的?
请有人澄清一下。
我想到的其他解决方案: 由于我发现了非常强大的 firebase 实时数据库,我认为这些解决方案可以解决这个问题:
- 创建一个正在侦听
onChildAdded的应用服务器,并在它发生变化时向客户端设备发送通知。 - 在客户端应用上创建一个后台服务,监听
onChildAdded,并在必要时创建通知。
即便如此,我也不喜欢这些解决方案。 只是想了解实现目标的标准和正确方法。
【问题讨论】:
-
在使用 Firebase 实时数据库时,您不必保留应用服务器。这就是 Firebase 的全部概念,即您不必保留任何后端服务器来与我们的数据库通信。我不完全知道为什么在使用基于 Firebase 实现的一对一聊天应用程序时也需要实现推送通知?您想在收到新消息时显示通知?
-
你可以看看这个链接。这可能会有所帮助。 firebase.googleblog.com/2016/08/…
-
@ReazMurshed:我需要在应用未运行时实现推送通知。对于唯一的实时数据库,这是不可能的。如果应用程序未运行,则无法处理该事件。我读了博客。我了解所写的内容,但我认为这不是最好的解决方案,因为 firebase 网站上的文档建议使用 Firebase Cloud 消息传递和 App Server 来实现我的需要。
-
你读过我在之前评论中提到的谷歌博客吗?它建议有一个 nodejs 应用程序来服务推送通知的目的。
-
当然,我已经阅读了这篇文章,只是对这个解决方案的真正效率有些怀疑。
标签: android firebase xmpp push firebase-cloud-messaging