【问题标题】:Will a FCM message, open a firebase database connection?FCM消息会打开firebase数据库连接吗?
【发布时间】:2017-01-16 11:52:09
【问题描述】:

我想知道,如果我的应用在后台并收到 fcm 消息,这会自动打开一个 firebase 连接以同步我的活动引用吗? 我想在接收 fcm 消息时运行服务,然后将 onChildAdded 和 singleValueEvent 侦听器附加到数据库引用(keep_synced true)并在后台执行操作,然后服务在值事件发生时自行停止。想知道这种方法是否能保证到那时我会收到添加到该位置的所有孩子?

非常感谢

【问题讨论】:

  • 这个主题(推送同步)相当广泛。我在下面写了一个小答案,主要是为了给你一些开始的链接。但是,除非您让您的问题更具体并显示您遇到问题/有问题的代码,否则我会投票关闭它(尽管它肯定很有趣)。

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


【解决方案1】:

没有。您必须自己更新值。 FCM 是 GCM 的替代品,它只是用来发送通知。 您可以处理 FCM,然后调用更新该节点上所有子节点的侦听器。

【讨论】:

  • 我的服务器在该引用中添加了一个孩子,然后还向用户发送了一条 fcm 消息,现在在前台我可以使用侦听器来获取孩子但是当我的应用程序在后台时,我需要依靠fcm。所以我的问题是,如果我只是向用户发送一条空的 fcm 消息(我想这会消除一段时间的网络限制),那么当收到消息时,ref(keep_synced true)是否也会自动同步,这样我就不会'不必处理 fcm 消息而只需使用侦听器来获取孩子?
  • 看,你必须在收到通知时同步所有孩子,就像当用户开始你的活动时一样。如果您在收到 FCM 时显示通知,您也可以在那里同步您的数据库。
  • 谢谢,我没有太多声望来支持你 :)
【解决方案2】:

不,当收到 FCM 消息时,不会自动连接到 Firebase 数据库。

为此,您必须process the FCM message,然后reconnect your database listenersgo online

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-15
    • 2018-11-21
    • 2015-04-14
    • 2019-05-14
    相关资源
    最近更新 更多