And*_*huk 6 firebase swift google-cloud-firestore
我正在我的一个应用程序中实现 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
})
Run Code Online (Sandbox Code Playgroud)
在测试期间,我一直在将文档上传到此集合,然后通过 Firebase 控制台删除了所有文档。所以,现在,我的测试用户不存在该集合。当我第一次启动应用程序时,我确实看到这个集合是空的——监听器报告了正确的结果。
但是,这样做会消耗大约 1000 次读取。几乎感觉就像是在为我的测试用户下载此集合的所有历史记录(例如,插入了 500 个文档,删除了 500 个文档)。但是,即使是这样,它也不会向我报告——我在控制台中只收到一条“LOG 0”消息。
这是集合侦听器的工作方式吗?我确实知道侦听器下载初始状态,但我认为它将是当前快照,在这种情况下,它将消耗 1 次读取以确定最初没有任何返回。
欢迎任何解释/想法/建议。
我非常想通过查看详细的 Firestore 读取日志来调试它。但是,我在控制台中找不到这样的选项:(
在这种情况下,听起来好像 OP 在执行数据库操作时让 Firestore 控制台保持打开状态。由于 Firestore 控制台本身反映了实时更新,因此随着当前所选集合的变化,它会随着时间的推移产生读取。
| 归档时间: |
|
| 查看次数: |
1552 次 |
| 最近记录: |