【发布时间】:2020-08-30 01:11:54
【问题描述】:
我正在尝试读取 Firestore 文档中的单个字段,将该字段递增 1 并在文档中的其他两个字段旁边更新该字段。
Firebase 事务更新()函数似乎接受一个只有一个字段和值的 JSON 对象,因为当我将其他字段添加到 JSON 时,更新失败。
这行得通:
t.update(referralCodesDocRef, {field1: value1});
这不起作用:
t.update(referralCodesDocRef, {
field1: value1,
field2: value2,
field3: value3
});
这也不起作用:
t.update(referralCodesDocRef, {field1: value1});
t.update(referralCodesDocRef, {field2: value2});
t.update(referralCodesDocRef, {field3: value3});
这是执行交易的函数
function runIncreaseCountTransaction(referralCodesDocRef){
return db.runTransaction(t => {
return t.get(referralCodesDocRef)
.then(doc => {
console.log(doc);
let newReferralCount = doc.data().referral_count + 1;
if(newReferralCount === max_referral_count){
const current_time_millis = Date.now();
const end_time_millis = current_time_millis+(180*1000); // ends after 3 mins
t.update(referralCodesDocRef, {referral_count: newReferralCount});
t.update(referralCodesDocRef, { timer_start_time: current_time_millis });
t.update(referralCodesDocRef, { timer_end_time: end_time_millis });
}
else{
t.update(referralCodesDocRef, { referral_count: newReferralCount });
}
return Promise.resolve(newReferralCount);
})
.then(result => {
console.log('Success: Update successful: Referral count incremented!!', result);
return true;
}).catch(err => {
console.log('Error: could not update referral count', err);
});
});
}
那么如何通过 firebase 事务实现多个字段更新?
【问题讨论】:
标签: node.js firebase transactions google-cloud-firestore google-cloud-functions