为啥在 Firestore 中写入 1 个文档需要 +30 次读取? [复制]
Posted
技术标签:
【中文标题】为啥在 Firestore 中写入 1 个文档需要 +30 次读取? [复制]【英文标题】:Why 1 document write in Firestore costs +30 reads? [duplicate]为什么在 Firestore 中写入 1 个文档需要 +30 次读取? [复制] 【发布时间】:2020-09-25 12:05:21 【问题描述】:我正在使用 Firebase Firestore 创建日志系统。结构是:
集合:错误 错误 1 的条目 错误 2 的条目 ...我像这样添加一个错误:
val error = hashMapOf(
"datetime" to FieldValue.serverTimestamp(),
"errorMessage" to errorMessage
)
database.collection("errors")
.add(error)
然后我会观察成本是如何受此操作影响的。 关于写入计数,显然增加了1个写入操作。
问题在于读取操作。由于某种原因,执行此代码会导致:
超过 30 次读取 即使我终止了应用程序,读取计数也会随着时间的推移而不断增加。为什么一个写操作要花费这么多读操作?
【问题讨论】:
请注意,如果您通过 Firebase 控制台监控数据库,则来自 Firebase 控制台的读取会包含在您的读取计数中。 我在firebase网站上看,这意味着每次写入,如果我去网站并选择了***集合,所有元素都被计为读取?? 如果“我访问网站”是指“我访问 Firebase 控制台”(console.firebase.google.com/u/0),答案是肯定的,那里的读取数计入您的配额/计数。 并且每次枚举(未打开)文档时,这算作一次读取?? 是的,因为它是查询的结果。实际上没有“被打开”的概念:获取包含所有字段的文档。查询获取所有相应的文档。 【参考方案1】:请注意,如果您通过 Firebase console 监控/监视数据库,则从 Firebase 控制台读取的 Firestore 文档将包含在您的 Firestore 读取计数/配额中。
【讨论】:
以上是关于为啥在 Firestore 中写入 1 个文档需要 +30 次读取? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
使用 Cloud Function 在 Firestore 上写入数据突然失败