android - 对 Cloud Firestore 的多次写入是否有任何限制?
问题描述
我多次制作新文档而不检查写入是否成功:
for element in data {
val document = firestore.collection("test")
document.set(element)
}
有时data
包含数百个元素,我发现在极少数情况下并非每个文档都上传到云端(例如,5% 没有成功上传,但只有最后一个元素)。
多次写入有限制吗?我应该把它包进批次吗?
解决方案
是的,大量写入的 Firestore 性能存在限制。
单个文档每秒更新一次的限制。在这种情况下,一次编写所有文档肯定比一次编写一个值更好(另外,它的成本会低得多)。文档指出,这个限制有点软,但强烈建议不要超过它。
如果您在狭窄的文档范围(或使用新集合)中编写,您也可能会遇到性能问题。确保您要么使用自动 ID,要么将它们分散在范围内。
最后,写入有一些完全的限制,包括每秒 500 次写入到文档包含索引字段上的顺序值的集合的速率。
基于另一个最近的问题,批处理充其量是对并行写入的一种清洗,并且确实增加了复杂性,但它比顺序写入更快。该答案还建议不要使用客户端 SDK 进行批量写入(例如,使用 Admin SDK)。
推荐阅读
- git - gitignore 忽略二级目录中除 config.xml 文件之外的所有文件?
- c - 如何在 C 中将文本从一个文件复制到另一个文件?
- angular - 将较旧的 Angular 版本迁移到较新的 Angular 版本
- python - 无法重塑数组
- python - 我们如何使用 python 连接器连接到雪花
- tensorflow - Bazel 使用 tensorflow(或仅使用 tbb)作为外部依赖项具有“Make”Variables not defined 错误
- python - 用于动态变量的列表 - 与第一个和最后一个字符串一起传递的额外字符
- javascript - 节点中的空数组
- python - keras 根据列添加起始权重
- codeigniter - Codeigniter:index.php?按下后退按钮时删除