如何从Firebase云功能中调用异步功能

时间:2020-10-28 13:56:32

标签: javascript node.js firebase google-cloud-functions

我正在导出可以从iOS应用调用的Firebase云功能。

exports.myFunction = functions.https.onCall((someData, context) => {

});

如何调用异步功能?

exports.myFunction = functions.https.onCall((someData, context) => {

    return await someAsyncFunction();

});

文档指出要返回一个承诺,但是我不确定如何将现有的异步函数包装到一个我可以返回的承诺中。

https://firebase.google.com/docs/functions/callable

要在异步操作后返回数据,请返回promise。的 承诺返回的数据将发送回客户端。例如, 您可以返回可调用函数写入的已净化文本 实时数据库:

2 个答案:

答案 0 :(得分:2)

尝试在函数前面附加异步以使用await。

insert into database.users (Age)
values (30);

答案 1 :(得分:1)

您可以使回调函数在onCall上传递,从而可以在其中使用await:

exports.myFunction = functions.https.onCall(async (someData, context) => {
    return await someAsyncFunction();
});

或者,您可以简单地返回someAsyncFunction返回的承诺:

exports.myFunction = functions.https.onCall((someData, context) => {
    return someAsyncFunction();
});

无论哪种情况,您都必须返回承诺,该承诺将与数据一起解析以进行序列化并发送到客户端应用程序。这两种方法都可以做到这一点。