Firebase批量写入:一个写入需要另一个先前执行的写入

时间:2020-09-09 07:32:19

标签: firebase google-cloud-firestore atomic write

我想使用Firebase批处理写入来确保我的所有写入或全部都没有发生。

但是,我要创建一个文档(doc1),并且文档(doc2)和doc2应该位于doc1的子集合中。

我认为doc1必须存在,以便它可以具有任何子集合(如果我错了,请更正我)。我仍然可以一次批写两次写入吗?

2 个答案:

答案 0 :(得分:2)

reference说,批处理中的写入在本地不可见(即,该批处理中的其他写入不可见)。在您的示例中,当您编写/ collection / doc1 / subcollection / doc2时,doc1还不存在...

但是,事实证明,如果doc1不存在,您可以写入/ collection / doc1 / subcollection / doc2事件,它将在您的控制台中为shown in italics

因此,最后:是的,您可以在同一批中完成两次写入。 Doc2将位于不存在的doc1中,但是只是在提交期间是临时的,一旦完成提交,所有会没事的。

答案 1 :(得分:1)

是的,一旦您知道了两个文档的引用,就可以很好地完成两个批处理,如下所示(JavaScript SDK):

temp.csv

实际上,从技术角度来看,两个文档是完全相互独立的。他们只是分享自己的道路的一部分而已。这样做的副作用是,如果删除文档,则该文档的子集合仍然存在。