如果我在查询中限制firebasefirestore,为什么它要执行多个读取操作



我在Kotlin中有以下代码,在按"columnA"排序后,我会在其中检查我收藏的最后一份文档:

db.collection("collection1").orderBy("columnA", Query.Direction.DESCENDING)
.limit(1).get()
.addOnCompleteListener {
if (it.isSuccessful) {
// Some operations
}
}

据我所知,Cloud Firestore在执行该操作时应该执行一次读取。对吗?那么,为什么Firestore可以执行30多次读取操作呢?

据我所知,firebase在执行该操作时应该执行一次读取。对吗?

是的,没错。如果您将查询限制为只返回一个元素,那么您将始终只需要一个读取操作。根据有关Firestore定价的官方文件,据说:

查询的最低费用

即使查询没有返回任何结果,您执行的每个查询的最低费用为一个文档读取

因此,即使查询没有生成文档,执行查询时也会有一次读取操作的成本。

但是,如果您保持Firebase控制台打开,这些额外的读取操作很可能会出现,因为控制台被视为任何其他客户端。或者,您执行其他查询,这些查询会引发您不知道的代码其他部分的读取操作。

最新更新