我对Firebase数据库不太熟悉, 我想将数据存储在target1中,如果成功,则会将一些数据存储到target2中。
目前我正在这样做:
Database.ref('target1').push({
name: name,
email: email
})
.then(()=>{
Database.ref('target2').push().set({
name: name,
email: email
})
.then(()=>{
console.log('success')
})
})
这是在target1和target2中存储数据的正确方法吗? 如果target1或target2失败,如何捕获错误?
答案 0 :(得分:3)
您的方法有效,但这意味着您要在两次调用中编写它。因此,在成功写入target2
之后,对target1
的写入可能会失败。
如果希望它们都作为一项操作成功或失败,则需要使用多位置更新。要通过多位置更新获得与您当前代码完全相同的结果,它将类似于:
var key1 = Database.ref('target1').push().key;
var key2 = Database.ref('target2').push().key;
var updates = {};
updates["target1/"+key1] = {
name: name,
email: email
};
updates["target2/"+key2) = {
name: name,
email: email
};
Database.ref().update(updates)
.then(()=>{
console.log('success')
})
})