当数据更改SwiftUI时,Firebase Listener多次调用



我有三个监听器

  1. 为所有用户获取可见数据
  2. 获取两个日期之间的数据
  3. 获取所有数据

但是,当任何数据更改用户表时,监听器会自动调用4-5次。

func listenData() -> ListenerRegistration {
let listener = db.collection("user")
.whereField("FirstRow", isGreaterThanOrEqualTo: "FirstRow")
.whereField("lastRow", isLessThanOrEqualTo: "lastRow")
.addSnapshotListener { querySnapshot, error in
if let error = error {
print("listener error: (error.localizedDescription)")
return
}
if let snapshot = querySnapshot {
print("Without For Each = Data")
snapshot.documentChanges.forEach { diff in
print("For Each = Data")
}
print("listen Public Rides Loop Done")
}
}
return listener
}

问题:当用户更改数据时,如何进行一次Listener调用?

有人能向我解释一下如何让听众只打一次电话吗?

如有任何帮助,我们将不胜感激。

提前谢谢。

Firestore的onSnapshot也将始终为您提供数据库中数据的初始快照。没有办法告诉API跳过这个初始快照。

如果您的用例不需要初始数据,您将不得不在应用程序代码中忽略它,或者您将不得不提出一个只返回您感兴趣的文档的查询。最后一个问题以前已经讨论过几次了,所以我建议查看这些问题的答案。

如果您想在第一次更改后停止侦听更多更新,则可以在此时分离侦听器。

最新更新