Cloud函数和Firestore:使用Promise.all()跟踪多个文档修改



我使用可调用的Cloud函数来创建新用户。对于该用户,将在Cloud Firestore中创建多个文档。

如果一个承诺(文档创建失败(,我不想只存储部分数据,而是完全撤消注册,所以我使用Promise.all(documentCreationPromisses)

所以我的问题是,尽管我使用Promise.all((,但是否仍然有可能创建了一些文档,而其他文档没有?

Promise.all()返回一个promise,该promise告诉您所有其他promise是否成功,或者其中任何一个是否失败。它当然可以通过部分成功来解决,如果有失败,你必须检查每个人的承诺,找出哪些成功或失败。

如果您正在Firestore中修改一堆文档,并且您要求所有修改要么完全成功,要么什么都不发生(完全回滚(,那么您应该使用批写入或事务。使用批处理写入和事务,所有操作都必须成功,否则整个批处理将失败。该批次返回的单个承诺将告诉您发生了什么。

最新更新