Firebase 将集合设置为子集合
我想知道是否有更直接的方法将集合设置为新文档中的子集合。我目前的方法是:Firebase 将集合设置为子集合,firebase,google-cloud-firestore,Firebase,Google Cloud Firestore,我想知道是否有更直接的方法将集合设置为新文档中的子集合。我目前的方法是: 获取将用作子集合的集合A 创建对新DocA 将一些数据设置到DocA 在DocA 使用batch()并循环通过CollectionA,在CollectionA的每个文档上使用batch(set,CollectionA.doc.data()) batch.commit()将所有文档从CollectionA提交到CollectionB 有没有更简单的方法来实现这一点 比如: 我尝试过一些类似的方法,但是CollectionA最
DocA
DocA
DocA
batch()
并循环通过CollectionA
,在CollectionA的每个文档上使用batch(set,CollectionA.doc.data())
batch.commit()
将所有文档从CollectionA
提交到CollectionB
我尝试过一些类似的方法,但是
CollectionA
最终生活在CollectionB
中的单个文档中。而不是CollectionA
中的所有文档成为CollectionB
中的文档 没有API将文档从一个集合复制到另一个集合。您必须将文档读取给客户机,然后将其写入目标集合
我不认为有任何更快的方法可以通过批量复制来实现这一点。请注意,一个批处理最多只能包含500个写入操作,因此您可能必须执行多个。是否询问是否可以在一次调用中创建新文档和子集合?答案是“不”。如果您询问是否可以在不创建其所在文档的情况下创建子集合,答案是“是”:
db.collection('CollectionB/document1/CollectionA')。添加(…)
。但我不确定我是否理解这些步骤。您是否正在尝试复制集合子集合中的所有文档?如果是:为什么?我完全支持数据复制,但乍一看这听起来有点过分。基本上,我想要CollectionA
的快照(如当前状态,而不是Firestore快照),设置为DocA
中的子集合。换句话说,我想在创建DocA
时,将CollectionA
s状态保存为DocA
的子集合。啊,这很有意义。我不认为有任何更快的方法可以通过批量复制来实现这一点。请注意,一个批可以包含不超过500个写入操作,因此您可能必须执行多个。CollectionA
包含约12个文档,但这些文档是嵌套对象/数组。对于查询/更新,我认为它作为子集合比包含数组的嵌套对象更有用。因此,在本例中,批处理
没有太多问题,但希望确保没有更简单的方法。
DocA.collection('CollectionB').set(CollectionA)