我有一个firebase函数,其功能如下:
exports.myFunction = functions.database.ref('/users/{id}/').onWrite((snapshot, context) => {
//do some processing here
var number;
snapshot.after.ref.parent.once('value').then((newSnapshot) => {
number = newSnapshot.child('number').val();
});
console.log(number);
//do some processing with the use of var number
//returning the updates after processing
return snapshot.after.ref.update(updates);
});
我意识到,由于我用来获取number值的函数是异步运行的,因此变量number即将变得不确定。但是,我无法想到一种方法来转换此实现,以便它按我想要的方式工作。任何帮助将不胜感激。
答案 0 :(得分:2)
您可以链接一个新的.then()以对此编号执行处理。例如:
exports.myFunction = functions.database.ref('/users/{id}/').onWrite((snapshot, context) => {
...
var number;
return snapshot.after.ref.parent.once('value').then((newSnapshot) => {
number = newSnapshot.child('number').val();
}).then((number) => {
console.log(number);
//do some processing with the use of var number
snapshot.after.ref.update(updates);
});
});