首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当数据更改SwiftUI时,Firebase侦听器多次调用

当数据更改SwiftUI时,Firebase侦听器多次调用
EN

Stack Overflow用户
提问于 2021-11-18 14:35:26
回答 1查看 768关注 0票数 1

我有三个听众

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

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

代码语言:javascript
复制
    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
}

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

有谁能给我解释一下如何只听一次电话吗?

任何帮助都将不胜感激。

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-18 15:39:32

Firestore的onSnapshot也总是给出数据库中数据的初始快照。没有办法让API跳过这个初始快照。

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

如果您想在第一次更改后停止侦听更多更新,可以在这一点上进行分离听者

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70021711

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档