Firebase推送通知与childAdd监听器

3
我正在为基于Firebase的移动应用程序开发一个好友请求模块,因此我正在考虑选择推送通知的方式。
假设用户A请求与用户B成为好友。现在有两个想法: - 用户A向简单服务器发送请求,然后它将调用FCM向用户B发送通知。 - 创建一个服务,监听Firebase实时数据库中的数据更改,然后用户A将在该数据库上进行更改,通知将显示在用户B的设备上。
我认为两种方式都可以实现,但哪一种更好,为什么? 请给我一些关于这个问题的建议。
提前感谢您。
1个回答

2

使用任何一个都可以。

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

而对于 FCM,只有在需要发送通知时才会触发。如果“好友请求”并不是非常关键的应用程序,那么我认为使用 FCM 是可行的。

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

在您的场景中,重要的是首先将“好友请求”保存在您的数据库或应用程序服务器中,以便触发相应的操作(FCM 通知或实时数据库更新)。


1
感谢您的回复,AL。正如我之前提到的,childAdded将在服务中被监听,因此即使用户离线,它仍然会被触发。但是,是的,重点是当childAdded时,每个用户都会捕获它,但我们只需要进行一个小检查来跳过它。而且FCM也使用服务。我认为我需要进行更多的测试来确定哪个更好:P - Mov5
我懂了,我错过了在“childAdded”上的那部分内容。我猜无论哪个都应该还可以。只要“好友请求”被发送就行了。祝你的应用好运。干杯! - AL.
1
我想给你的答案点个赞,但是我的声望还不够,哈哈。另外,如果我在用户记录中更新数据库(比如一个名为“请求”的字段),只有该用户会收到通知,无需进行检查。再次感谢你的帮助;) - Mov5
1
别担心,你很快就会到达目的地。:D 我认为你对requested字段的想法是可以的。你打算把它变成一个request列表吗?这样你只需要检索列表然后展示给用户,如果已经看过或者回复了就删除即可。 - AL.
哈哈,没错,这就是我要得到的。现在的问题是如何将它放入我的代码中:D - Mov5

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接