【问题标题】:Can you listen to Firestore updates when iOS app is in the background?当 iOS 应用程序在后台时,您可以收听 Firestore 更新吗?
【发布时间】:2020-12-09 03:50:22
【问题描述】:

我对 Firestore 非常陌生,并试图了解实时更新的工作原理。我现在正在使用类似的东西从 Firestore 获取更新:

db
  .collection(Collections.session)
  .whereField("participants", arrayContains:userID)
  .addSnapshotListener { querySnapshot, error in

我注意到,当应用程序处于后台时,侦听器块不会被触发,而只会在它被带回前台时触发。

有没有办法在应用程序也在后台运行时获取更新?也许以某种方式发送推送通知或其他什么?

非常感谢任何形式的帮助。

【问题讨论】:

标签: ios swift firebase google-cloud-firestore


【解决方案1】:

有没有办法在应用也在后台运行时获取更新?

由于后台应用程序最终会被操作系统杀死,因此当用户未主动使用应用程序时,您无法可靠地运行侦听器。

您是正确的,唯一(可靠地)通知您的应用后端发生变化的唯一方法是发送推送通知。

一种非常常见的方法是使用Cloud Functions 编写一个Firestore trigger,在创建、更新或删除感兴趣的文档时调用该Firestore trigger。您可以使用它来编写后端代码,使用 Firebase Cloud MessagingFirebase Admin SDK 向您的应用发送通知,并使用有效负载告诉它响应该更改。

【讨论】:

  • 谢谢道格!这很有帮助!
【解决方案2】:

不幸的是,推送通知并不是一种可靠的方法。如果需要,后台应用程序可能被操作系统杀死,但并非总是如此。终止源可以是操作系统或用户。如果用户终止您的应用,则无法接收推送通知。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-19
    • 1970-01-01
    • 2021-01-19
    • 2015-03-11
    相关资源
    最近更新 更多