Google cloud firestore Firestore中部分数据上传的标准实践错误处理?

Google cloud firestore Firestore中部分数据上传的标准实践错误处理?,google-cloud-firestore,Google Cloud Firestore,想知道处理上传到firestore DB的失败/部分数据的标准/最佳做法是什么(如果有) 例如,假设用户需要通过以下方式上传到两个不同的集合 let res = undefined let docID = firebase.auth().currentUser.uid try { res = await firebase.firestore().collection('someCollection') .doc(docID) .set(someData)

想知道处理上传到firestore DB的失败/部分数据的标准/最佳做法是什么(如果有)

例如,假设用户需要通过以下方式上传到两个不同的集合

let res = undefined
let docID = firebase.auth().currentUser.uid
try {
    res = await firebase.firestore().collection('someCollection')
        .doc(docID)
        .set(someData)
} catch (error) { console.error(`Some message ${res}`) }

try {
    res = await firebase.firestore().collection('someOtherCollection')
        .doc(docID)
        .set(someOtherData)
} catch (error) { console.error(`Some message ${res}`) }
无论出于何种原因,程序都成功地写入了某个集合,但没有写入到另一个集合。这应该如何处理?我们应该尝试回滚已写入的内容(通过catch块),还是等到上传尝试结束后再向文档添加/上传一个附加标志,并且只有在数据具有该标志时才将其视为未来有效?还有别的吗


**认识到这接近于某些情况,但在本例中,我特别要求Firestore API(例如
Firestore()
API中专门用于处理这些情况的任何函数/对象)和最佳实践(如果在更广泛的世界中有任何函数/对象(使用Firebase/Firestore非常新)).

您应该使用Firestore来确保所有文档都以原子方式更新。这将确保所有文档都已更新,或者没有更新

从引用的文档中:

CloudFireStore支持读取和写入数据的原子操作。在一组原子操作中,要么所有操作都成功,要么没有应用任何操作