【问题标题】:firebase realtime db with FCM for implementing a chat带有 FCM 的 firebase 实时数据库,用于实现聊天
【发布时间】: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


    【解决方案1】:

    即使用户在前台打开应用程序,向设备发送云消息确实很常见。在这种情况下,您只需忽略应用程序的 onMessageReveived 中的消息。

    【讨论】:

    • 谢谢。似乎无论如何我需要通过 FCM 发送所有消息,使用实时数据库进行消息传递没有任何优势(云上的消息备份除外)。我说的对吗?
    • 数据库将拥有所有消息的持久日志。这对您的应用是否有必要,只有您自己说。
    • 我能否确定 FCM 不会限制我的应用程序可以通过它发送的消息量(以毫秒为单位)?当应用程序有大流量时,我的应用程序服务器将不得不每毫秒发送大量的 FCM ......
    • @user2924714 你有没有找到任何解决方案.. 如果你能分享一些你的经验会非常有帮助..
    猜你喜欢
    • 2023-04-04
    • 2019-12-09
    • 2020-06-13
    • 1970-01-01
    • 2017-11-16
    • 2017-10-06
    • 1970-01-01
    • 1970-01-01
    • 2017-09-23
    相关资源
    最近更新 更多