提问人:berryestate968 提问时间:11/8/2023 最后编辑:Alex Mamoberryestate968 更新时间:11/8/2023 访问量:36
Firebase 查询的读取计数
Firebase read count for queries
问:
我正在使用 Swift 5 为 iOS 编写代码。我一直在阅读 Firebase 文档,并了解到 Firebase 的工作原理是计算它访问的每个文档的读取次数,而不管其中的字段数据如何。
所以现在,我有一个Firestore设置如下:
[收藏] 用户名
- [文件] johndoe
- [领域] 名称:John Doe
- [领域] 年龄:21岁
- [领域]性别:男
- [文件] janesmith
- [领域] 姓名:简·史密斯
- [领域] 年龄:25岁
- [领域]性别:女
- [文档] johnnybloggs
- [领域] 名称:Johnny Bloggs
- [领域] 年龄:30岁
- [领域]性别:男
我有 2 个问题:
问1:
Firestore.firestore().collection("username").whereField("name", isEqualTo: "Spider Man").getDocuments()
我用 搜索所有用户名,并尝试匹配“名称”。在上面的示例中,该名称不存在,因此我预计会出现“未找到用户名”错误。
问题是,既然它需要访问所有文档才能真正找出哪些文档具有匹配的名称,那么这会算作 3 次读取吗?还是 0 阅读?getDocuments()
问2:
Firestore.firestore().collection("username").document("spiderman").getDocument()
我使用给定的特定用户名搜索文档。同样,我期待“未找到用户名”错误。这会算作 0 吗?
提前致谢!
我尝试了上面的所有方法,但我看不到任何读取触发,所以我不太确定自己如何跟踪它。
答:
问题1
您始终需要支付与查询返回的文档数相等的读取操作数。但是,如果您的查询没有产生任何结果,根据有关Firestore定价的官方文档,它说:
查询的最低费用
对于您执行的每个查询,即使查询未返回任何结果,也要支付读取一个文档的最低费用。
因此,例如,如果您尝试查询 1.000 个用户但没有得到任何结果,您仍然需要支付一次读取费用。另请注意,没有“未找到用户名”错误。如果查询未返回任何文档,Firestore 不会引发异常。
问题2
调用 getDocument() 来读取文档在所有情况下都需要执行一次读取操作。
评论