【问题标题】:Atomic write of 2k+ documents in Firestore在 Firestore 中原子写入 2k+ 文档
【发布时间】:2020-01-27 13:57:09
【问题描述】:

我有一个要创建的用例:1 个文档,其中有一个集合“位置”,需要包含 2000 多个文档。

每个文档都有 4-5 个字段,不大,但每个文档都是自己的网络请求,在 Firestore 上创建它们需要很长时间。

有没有更好的方法来做到这一点?批量写入最多有 500 个对象创建限制,并支持设置、更新和删除(不是创建)。

【问题讨论】:

  • 如果文档不存在,set 不会创建它吗?
  • 请不要在您的问题中发布解决方案,因为这会让以后发现您的问题的人感到非常困惑。要么将其作为单独的答案发布,要么建议将其作为对 Alex 答案的编辑。

标签: firebase google-cloud-firestore


【解决方案1】:

这个问题最合适的解决方案是使用batch operations。因此,即使您只使用set() 方法,您也可以将多个写入操作作为一个批次执行,该方法实际上在特定引用处添加了一个文档。这里的唯一问题是您不能添加超过 500 个,因此您应该创建一种机制以将所有 2000 个文档添加到 500 个块中。所以需要 4 个批处理操作。

【讨论】:

  • 在这种情况下,您应该传递一个包含自动生成 ID 的文档引用。因此,有了集合引用,您可以简单地生成 id,然后将该 id 传递给 document() 函数。
  • 谢谢@Alex,我成功了。使用解决方案代码更新问题。
猜你喜欢
  • 2019-12-23
  • 2022-01-25
  • 1970-01-01
  • 2018-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-26
  • 2020-04-13
相关资源
最近更新 更多