我想使用Firebase批处理写入来确保我的所有写入或全部都没有发生。
但是,我要创建一个文档(doc1),并且文档(doc2)和doc2应该位于doc1的子集合中。
我认为doc1必须存在,以便它可以具有任何子集合(如果我错了,请更正我)。我仍然可以一次批写两次写入吗?
答案 0 :(得分:2)
reference说,批处理中的写入在本地不可见(即,该批处理中的其他写入不可见)。在您的示例中,当您编写/ collection / doc1 / subcollection / doc2时,doc1还不存在...
但是,事实证明,如果doc1不存在,您可以写入/ collection / doc1 / subcollection / doc2事件,它将在您的控制台中为shown in italics。
因此,最后:是的,您可以在同一批中完成两次写入。 Doc2将位于不存在的doc1中,但是只是在提交期间是临时的,一旦完成提交,所有会没事的。
答案 1 :(得分:1)
是的,一旦您知道了两个文档的引用,就可以很好地完成两个批处理,如下所示(JavaScript SDK):
temp.csv
实际上,从技术角度来看,两个文档是完全相互独立的。他们只是分享自己的道路的一部分而已。这样做的副作用是,如果删除文档,则该文档的子集合仍然存在。