首页 > 解决方案 > 将集合设置为子集合

问题描述

我想知道是否有更直接的方法将集合设置为新文档中的子集合。我目前的方法是:

  1. Get CollectionA,将用作子集合
  2. 创建一个新的参考DocA
  3. 设置一些数据到DocA
  4. 创建一个新的CollectionB参考DocA
  5. 使用 abatch()和循环CollectionAbatch(set, CollectionA.doc.data())在每个文档上使用CollectionA
  6. batch.commit()将所有文档提交CollectionACollectionB

有没有更简单的方法来实现这一点?

喜欢:

DocA.collection('CollectionB').set(CollectionA)

我尝试了一些与此类似的方法,但CollectionA最终生活在CollectionB. 而不是所有的文档都CollectionA变成CollectionB.

标签: firebasegoogle-cloud-firestore

解决方案


没有 API 可以将文档从一个集合复制到另一个集合。您必须将文档读取给客户端,然后将它们写入目标集合。

我认为没有比批量复制它们更快的方法了。请注意,一个批处理最多可以包含 500 个写入操作,因此您可能必须执行多个。


推荐阅读