gpt4 book ai didi

swift - Firestore 收集监听器大量读取

转载 作者:搜寻专家 更新时间:2023-10-31 19:31:57 24 4
gpt4 key购买 nike

我正在我的一个应用中实现 Firestore 数据存储。

我有一个监听器,它像这样跟踪“日志”集合中的更新:

db.collection("logs").addSnapshotListener({ (snapshot, error) in
guard let s = snapshot else {return}
if s.metadata.isFromCache {
print("LOG_C \(s.documentChanges.count)")
return
}
print("LOG \(s.documentChanges.count)")
// other code
})

在测试期间,我一直在将文档上传到这个集合,然后我通过 Firebase 控制台删除了所有文档。所以,现在,我的测试用户不存在该集合。当我第一次启动应用程序时,我确实看到这个集合是空的 - 监听器报告了正确的结果。

但是,这样做会消耗大约 1000 次读取。几乎感觉它正在为我的测试用户下载该集合的所有历史记录(例如,插入了 500 个文档,删除了 500 个文档)。但是,即使有,它也不会向我报告 - 我在控制台中只收到一条“LOG 0”消息。

这是集合监听器的工作方式吗?我确实知道监听器会下载初始状态,但我认为这将是当前快照,在这种情况下,它会消耗 1 次读取以确定最初没有任何内容可返回。

欢迎任何解释/想法/建议。

我非常想通过查看详细的 Firestore 读取日志来调试它。但是,我在控制台中找不到这样的选项:(

最佳答案

在这种情况下,听起来好像 OP 在执行数据库操作时让 Firestore 控制台保持打开状态。由于 Firestore 控制台本身会反射(reflect)实时更新,因此随着当前所选集合的更改,它会随着时间的推移产生读取。

关于swift - Firestore 收集监听器大量读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54887991/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com