【发布时间】:2016-10-31 06:55:33
【问题描述】:
我正在开发一个 Android 聊天应用程序 似乎我需要通过 FCM 发送每条消息并保存到实时数据库。
我使用 Firebase 实时数据库来存储和发送消息。我仍然需要通过 FCM 发送每条消息(或至少是消息 ID)。恐怕如果我不这样做,并且仅在应用程序处于后台时发送 FCM,用户可能会错过一些传入的消息。
假设设计类似于 WhatsApp。每个对话都会打开一个单独的活动,显示该对话中的消息。
例如我正在和 A 聊天,此时 B 给我发了一条消息。我需要在所有对话中都有一个积极的倾听者,以了解我收到了来自 B 的新信息。 这意味着我需要将侦听器放入服务,而不是活动(因为活动代表一个带有其消息的活动对话)。
将侦听器放在服务上似乎不够可靠(如果 android 杀死服务怎么办?在我重新启动它之前,我可能会错过一些新消息,并且只有在我进入相关对话时才会看到它们,以便我从数据库中获取它们)。
由于上述原因,除了将其存储到数据库之外,我似乎还必须为每条发送的消息发送 FCM 通知。 听起来合理吗?有没有更好的方法来实现可靠的消息传递?
【问题讨论】:
标签: android firebase firebase-realtime-database firebase-cloud-messaging