android - 如果我在查询中限制它,为什么 Firebase Firestore 会执行多个读取操作?
问题描述
我在 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 控制台保持打开状态,则很可能会出现这些额外的读取操作,因为该控制台被视为任何其他客户端。或者,您执行其他查询,这些查询会导致您不知道的代码其他部分的读取操作。
推荐阅读
- swift - NSInvalidArgumentExceptionn NSKeyedArchiver 的问题
- nsoperation - 为什么苹果说操作是抽象类?
- ios - 如何在 iOS 中检测国家和州?
- javascript - 如何导入 json 文件以在 vis.js 中显示网络中的标题节点
- spring-boot - Spring Boot (v2.1.6) Microsoft Planner 集成
- ios - 在 Marketing Cloud 中创建的电子邮件在适用于 iOS 的 Outlook Mobile 应用程序上没有完全响应
- php - 尝试从 Azure 托管的 PHP 应用程序连接到 SQL Server,但出现错误 (ODBC)
- python - 如何从“类”HTML标签中查找文本匹配?
- regex - 正则表达式负前瞻问题确保仅在第一组中没有重复字符
- vim - 如何修复 Vim 中的 Leader Key Beep?