当 iOS 应用程序在后台运行时,您可以收听 Firestore 更新吗?

Eug*_*din 3 ios firebase swift google-cloud-firestore

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

db
  .collection(Collections.session)
  .whereField("participants", arrayContains:userID)
  .addSnapshotListener { querySnapshot, error in
Run Code Online (Sandbox Code Playgroud)

我注意到,当应用程序位于后台时,侦听器块不会被触发,而只有当应用程序返回前台时才被触发。

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

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

Dou*_*son 6

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

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

您是正确的,(可靠地)通知您的应用程序后端的某些更改的唯一方法是发送推送通知。

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