Firebase云消息传递到底是什么?

3

我需要在应用程序处于后台或关闭状态时从Firebase数据库检索数据。为此,我一直在考虑在服务中使用数据库引用。

但是,人们建议使用Firebase Cloud Messaging。但它到底是什么?

它如何与数据库交互?我如何使用它来监听和检索数据?关于这些问题的解释很少,而Firebase文档又太过广泛。或者我只是找不到它们。


文档内容较广,因为云消息服务是一个独立的产品,不同于数据库。这也解释了为什么你找不到太多信息。使用数据库并不需要FCM。 - OneCricketeer
2个回答

3

那是什么?

Firebase Cloud Messaging(FCM)是Google Cloud Messaging(GCM)的最新版本,是谷歌提供的Push Notification服务。

它允许开发人员从其应用程序服务器客户端应用程序发送数据。对于您的情况,您可以通过将数据库与FCM集成来向客户端应用程序发送所需数据。

它如何与数据库交互?我如何使用它来监听和检索数据?

如果您正在使用Firebase实时数据库,则可以选择以这种方式与FCM集成(参考@FrankvanPuffelen的答案):

将消息发送到基于 Firebase 数据库的设备需要您运行一个受信任的进程,通常在您控制的应用服务器上。这个受信任的进程监听数据库更改,然后调用 Firebase 云消息传递来发送消息
有关如何从 node.js 脚本发送消息的示例,请参见我的答案:如何从节点服务器发送 Firebase 云消息传递? 总之,您不使用它来侦听数据。但是您可以使用它作为介质将数据从您的数据库发送到客户端应用程序。

我不能只是在一个扩展服务的类中使用 DatabaseReference 吗?这样做有什么问题吗? - user6650650
2
@user6650650 保持实时数据库的监听器活动也意味着在用户设备上保持一个开放的套接字,这会增加电池消耗。请参见我的答案此处 - AL.
要不要增加一个单值事件监听器(另一个接口,仅在数据库更新时而非每次更新时检索数据),例如每30秒一次? - user6650650
1
这仍然像是轮询。请查看我的答案此处 - AL.
另外,它会消耗多少电池电量? - user6650650
那位朋友,那是完全不同于你现在发布的问题。 ;) - AL.

0

由于您是第一次实现Firebase,我建议您阅读this并对其有一个基本的了解。

广义上说,FCM(以前是GCM)是您应用程序的云消息服务。最重要的是,使用Firebase的分析实时数据库

这里是他们文档的链接。请仔细阅读,以更好地了解Firebase及其实现。


1
Firebase是一个完全独立的产品,与GCM不同。Firebase实时数据库,也就是最初的产品,Firebase云消息传递是GCM的品牌重塑(并使用称为GCM的现有技术)。 - OneCricketeer

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