来自另一个键的 Firebase 设置值
Firebase setting value from another key
我有一个将两个值设置为零的 firebase 函数。有没有办法在将点击设置为 0 之前将“lastDaily”的值设置为“点击”的任何值?
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,
});
});
});
});
以下应该可以解决问题(未经测试):
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()
in order to return a Promise when all the asynchronous work is complete。出于同样的原因,请注意我们使用 get()
方法,其中 returns 一个 Promise。
另一种解决方案,而不是 Promise.all()
,是使用 update()
method as shown in this documentation section。
我有一个将两个值设置为零的 firebase 函数。有没有办法在将点击设置为 0 之前将“lastDaily”的值设置为“点击”的任何值?
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,
});
});
});
});
以下应该可以解决问题(未经测试):
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()
in order to return a Promise when all the asynchronous work is complete。出于同样的原因,请注意我们使用 get()
方法,其中 returns 一个 Promise。
另一种解决方案,而不是 Promise.all()
,是使用 update()
method as shown in this documentation section。