Cloud Firestore 的多次写入有限制吗?

Nom*_*sta 2 android kotlin firebase google-cloud-firestore

我多次创建新文档而不检查写入是否成功:

for element in data {
   val document = firestore.collection("test")
   document.set(element)
}
Run Code Online (Sandbox Code Playgroud)

有时data包含数百个元素,我发现在极少数情况下,并非每个文档都上传到云端(例如,5% 未成功上传,而仅上传最后一个元素)。

多次写入有限制吗?我应该把它包装到批次中吗?

rob*_*emb 5

是的,大量写入时 Firestore 性能存在限制。

  • 单个文档每秒更新一次的限制。在这种情况下,一次写入所有文档肯定比一次写入一个值要好(而且,成本会低很多)。文档指出,这个限制有点软,但强烈建议不要超过它。

  • 如果您在狭窄的文档范围内(或使用新集合)进行编写,您也可能会遇到性能问题。确保您使用自动 ID 或将它们分散在范围内。

最后,写入有一些完全限制,包括每秒 500 个集合的写入速率,其中文档在索引字段上包含顺序值。

根据最近的另一个问题,批处理最多是对并行写入的清洗,并且确实增加了复杂性,但它比顺序写入更快。该答案还建议不要使用客户端 SDK 进行批量写入(例如使用 Admin SDK)。