我有一个 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 值的函数是异步运行的。但是,我无法想出一种方法来转换此实现,使其按照我想要的方式工作。任何帮助将不胜感激。
最佳答案
您可以链接一个新的 .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);
});
});
关于javascript - Firebase 处理异步函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51165586/