【问题标题】:What exactly is Firebase Cloud Messaging?Firebase 云消息传递到底是什么?
【发布时间】:2017-04-21 20:29:55
【问题描述】:

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

人们建议使用 Firebase 云消息而不是这个。但那究竟是什么?

如何与数据库交互?如何使用它来收听和检索数据?关于这些的解释很少,firebase 文档太宽泛。或者我只是找不到它

【问题讨论】:

  • 文档很广泛,因为云消息传递是一个独立于数据库的产品。这也可以解释为什么你找不到太多。使用数据库不需要FCM

标签: android firebase firebase-cloud-messaging


【解决方案1】:

由于您是第一次实施 Firebase,我建议您通过 this 了解它的基本概念。

从广义上讲,FCM(以前称为 GCM)是一种适用于您的应用的云消息传递服务。最重要的是,使用了 Firebase 的 AnalyticsRealtime Database

Here 是他们文档的链接。仔细阅读以更好地了解 Firebase 及其实施。

【讨论】:

  • Firebase 是与 GCM 完全不同的产品。 Firebase Realtime Database,即或原始产品,Firebase Cloud Messaging 是重新命名的 GCM(并使用称为 GCM 的现有技术)
【解决方案2】:

但这究竟是什么?

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

它允许开发者将数据从他们的App Server发送到Client App。对于您的情况,您可以通过将数据库与 FCM 集成来将所需的数据发送到您的客户端应用程序。

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

如果您使用Firebase Realtime Database,您可以选择以这种方式与FCM集成(参考@FrankvanPuffelen的answer):

根据插入到 Firebase 数据库的内容向设备发送消息需要您运行受信任的进程,通常在您控制的应用服务器上运行。这是trusted process listens to the database changes,然后是calls Firebase Cloud Messaging to send the messages

有关如何从 node.js 脚本发送消息的示例,请在此处查看我的答案:How to send Firebase Cloud Messaging from a node server?

总而言之,您不会使用它来监听数据。但是,您可以将其用作将数据从数据库发送到客户端应用程序的媒介。

【讨论】:

  • 我不能在类扩展服务中使用 DatabaseReference 吗?会有什么问题?
  • @user6650650 保持实时数据库的监听器处于活动状态还意味着在用户设备上保持打开的套接字,这会增加电池消耗。看我的回答here
  • 如何定期添加一个单值事件监听器(另一个只检索一次数据的接口,而不是在每次更新数据库时),比如每 30 秒一次?
  • 还是像轮询。看我的回答here
  • 还有,会造成多少电池消耗?
猜你喜欢
  • 2021-01-29
  • 1970-01-01
  • 1970-01-01
  • 2019-07-12
  • 1970-01-01
  • 1970-01-01
  • 2016-09-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多