.document(uid)是否与.whereEqual(“ uid”,uid)相同?

时间:2020-09-01 14:04:47

标签: android firebase kotlin google-cloud-firestore

此操作是

db.collection("users").document(uid)

与以下相同:

db.collection("users").whereEqual("uid", uid)

如果特定的uid不存在,我们是否仍要承担读取操作?这两种情况都可用吗?请注意,该文档尚未创建,无法读取任何内容。

1 个答案:

答案 0 :(得分:2)

此代码:

db.collection("users").document(uid)

不花费任何文档读取费用。尚未阅读任何文档。它唯一要做的是构建一个DocumentReference对象,该对象可用于get()文档(或添加侦听器)。 get()花费阅读文档的费用。

此代码:

db.collection("users").whereEqual("uid", uid)

在调用get()(或添加侦听器)之前,也不会花费文档阅读的费用。但是,如果您致电get(),那么即使没有文档,也总是花费至少个文档。 documentation for pricing中对此进行了介绍:

即使您执行的每个查询都没有返回结果,对于每次执行的查询,其最低读取费用为一个文档。