火基句柄异步功能



我有一个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);
});

我意识到变量数字是未定义的,因为我用来获取数字值的函数正在异步运行。但是,我想不出一种方法来转换此实现,以便它以我想要的方式工作。任何帮助将不胜感激。

您可以链接一个新的 .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);
});
});

最新更新