我有一個將兩個值設定為零的 firebase 函式。在將 click 設定為 0 之前,有沒有辦法將“lastDaily”的值設定為“click”的值?
exports.dailyReset = functions.pubsub.schedule("01 0 * * *")
.timeZone("Europe/London")
.onRun((context) => {
dbCon.once("value", function(snapshot) {
snapshot.forEach(function(child) {
child.ref.update({
lastDaily: 0,
click: 0,
});
});
});
});
uj5u.com熱心網友回復:
以下應該可以解決問題(未經測驗):
exports.dailyReset = functions.pubsub.schedule("01 0 * * *")
.timeZone("Europe/London")
.onRun(async (context) => {
const snapshot = await dbCon.get();
const promises = [];
snapshot.forEach(child => {
const oldClickValue = child.val().lastDaily;
promises.push(child.ref.update({
lastDaily: oldClickValue,
click: 0,
}));
})
return Promise.all(promises);
});
請注意,當所有異步作業完成Promise.all()時,我們使用它來回傳一個 Promise 。出于同樣的原因,請注意我們使用回傳 Promise 的方法。get()
另一種解決方案,而不是Promise.all(),將使用該update()方法。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/471322.html
標籤:javascript 火力基地 firebase-实时数据库 谷歌云功能
下一篇:如何使這個JS重復代碼更短
