【问题标题】:Firebase push notification vs childAdd listenerFirebase 推送通知与 childAdd 监听器
【发布时间】:2016-11-03 09:13:59
【问题描述】:

我正在开发基于 Firebase 的移动应用的好友请求模块,因此我正在考虑选择推送通知的方式。

假设 userA 请求与 userB 成为朋友。现在有两个想法:
- userA 向一个简单的服务器发送请求,然后它会调用 FCM 向 userB 发送通知。
- 创建一个服务来侦听 Firebase 实时数据库中更改的数据,然后 userA 将在该数据库上进行更改,并且通知将显示在 userB 设备上。

我认为两者都可以实现,但哪个更好,为什么? 请给我一些建议。..

提前致谢。

【问题讨论】:

    标签: android firebase firebase-realtime-database firebase-cloud-messaging


    【解决方案1】:

    使用任何一个都可以。

    然而,这里要考虑的一点是,当实时数据库保持侦听器处于活动状态时,它还会在用户设备上保持一个打开的套接字,这会增加电池消耗。

    而对于 FCM,它只会在需要发送通知时触发。如果 好友请求 对应用来说不是很重要,我认为使用 FCM 是一种方法。

    您是否也考虑过同时使用两者?如果用户当前在线,最好使用实时数据库,但如果用户离线,childAdded 将不会被触发(例如不使用应用程序)。在这种情况下,您可以设置它以便向用户发送通知。

    在你的场景中重要的是好友请求应该先保存在你的数据库或应用服务器中,这样才会触发相应的动作(FCM通知或实时数据库更新) .

    【讨论】:

    • 感谢您的回复,AL。正如我之前提到的,childAdded 将在 Service 中被监听,所以当用户离线时,它仍然会被触发。但是,是的,关键是当 childAdded 时,每个用户都会捕捉到它,但我们只需要一个小检查就可以跳过它。 FCM 也使用服务。我想我需要更多的测试来检查哪个更好:P
    • 我明白了。我错过了childAdded 上的那部分。我想任何一个都应该没问题。只要 好友请求 送达。祝你的应用好运。干杯!
    • 我想为你的答案投票,但我的声誉还不够大声笑。另外,如果我在用户记录中更新数据库(例如,作为名为“请求”的字段),则只有该用户会收到通知而不进行检查。再次,非常感谢你;)
    • 不用担心。你很快就会到达那里。 :D 我认为你对requested 字段的想法是可以的。您是否打算将其列为requests 列表?这样您只需检索列表然后将其显示给用户,然后如果已经看到或响应则删除。?
    • 哈哈,对,这就是我要得到的。现在的问题是我如何把它放在我的代码中:D
    猜你喜欢
    • 2017-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-05
    • 2018-09-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多