javascript - Firebase 处理异步函数

标签 javascript firebase firebase-realtime-database google-cloud-functions

我有一个 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/

相关文章:

javascript - firebase 使用用户 token 设置数据

javascript - Firebase 实时数据库 - "Error: Client is offline"。 react /NextJS

javascript - 如何使用表单指令为 AngularJS 数据表的编辑表单创建 "back"按钮

javascript - Ng-Repeat 中的 Angular 评估函数

javascript - 如何调试 div/span 的高度?

java - 查询所有文档中的字段并确定该字段位于哪个文档中?

javascript - 汇总、Svelte、SCSS : how to build different bundles at once?

javascript - 使用 != 和 not-in 查询会在 firestore 中使用 Query.where 抛出错误

部署函数时 Firebase 配置变量不可用错误

ios - 使用 Firebase 添加好友系统的最佳实践?