javascript 如何检查Firestore `batch.commit()`是否成功(即回滚)

ffx8fchx  于 2023-05-16  发布在  Java
关注(0)|答案(1)|浏览(99)

我正在尝试使用firebase-admin Node.js库中的firestore批处理。
我想做一些其他的事情,只有当批处理写入成功。但是我看不到任何检查批处理是否成功提交或回滚的选项。
我在google API官方文档和firebase官方文档中找不到任何关于这方面的文档。
我的代码:

import {getFirestore} from "firebase-admin/firestore";

const firestore = getFirestore();
const batch = firestore.batch();

batch.update(docRef, {"blah_blah_blah": true});
batch.set(docRef2, {"blah_blah_blah": false});

await batch.commit();

// ... if batch succeeded, do some other stuff
cidc1ykv

cidc1ykv1#

对于所有返回promise的函数(如batch.commit())的一般理解是,如果在异步执行工作时出现错误,则返回的promise将被拒绝。您可以使用正常的JavaScript错误处理来确定异步函数是否返回了在使用async/await时被拒绝的promise。

try {
    await batch.commit();
}
catch (e) {
    // something failed with batch.commit().
    // the batch was rolled back.
    console.error(e);   
}

如果不使用async/await,也可以在返回的promise对象上使用catch函数。
如果你需要更多关于promise的javascript错误处理的帮助,我建议你做一些关于这个主题的网络搜索。Firestore并没有在这里添加任何特别的东西。

相关问题