Firebase:即使应用退出,也要监听 ChildEventListener
Posted
技术标签:
【中文标题】Firebase:即使应用退出,也要监听 ChildEventListener【英文标题】:Firebase: Listen ChildEventListener even if app exits 【发布时间】:2017-01-09 13:14:19 【问题描述】:我正在开发一个 iOS 应用程序,并希望使用 firebase 实时数据库实现推送通知等行为。
如果我的应用正在监听某个 firebase 节点,我会向用户发送本地推送通知,以防该节点被更新。
问题是,如果应用程序没有运行,即用户已经杀死它,我的应用程序会继续侦听该特定节点吗? 我想,在 android 中,我们已经支持这样的方式,如此链接 (Link) 中所述。
我们能否在 ios 中实现相同的行为。如果不是,还有什么替代方案?
谢谢
更新:
1- 没有什么比在 iOS 应用程序中本地触发推送通知更好的了。我想实现远程通知的行为,但这是做不到的。
2-就监听某些事件而言,当应用程序不在前台或后台时无法完成。
【问题讨论】:
【参考方案1】:如果 iOS 应用程序被终止/不在内存中,您将无能为力。
但是,如果应用程序在后台并且存在于内存中,您可以执行一些任务。 在这种情况下,您可以使用background fetch request。
在 Android 中,有 Services
即使在应用程序被终止时也会运行。但是在 iOS 上,没有这样的东西。
您可以在根视图控制器中添加Firebase
观察者,并实现background fetch request
以在应用处于后台时继续观察数据。
【讨论】:
【参考方案2】:当您的应用程序被杀死时,侦听器会断开连接。
在这种状态下向您的应用发送消息的典型方式是使用推送通知,在 Firebase 中该通知映射到 Firebase Cloud Messaging。
这就是为什么您会经常看到 Firebase 数据库和 Firebase 云消息传递 (FCM) 一起使用的原因:数据库用于在用户打开应用程序时发送消息,而 FCM 用于在以下情况下发送消息应用未激活。
【讨论】:
以上是关于Firebase:即使应用退出,也要监听 ChildEventListener的主要内容,如果未能解决你的问题,请参考以下文章
我们可以在 ios serviceworker 上运行 firebase 实时监听吗?