如何从Firebase云函数调用异步函数



我正在导出一个可以从iOS应用程序调用的Firebase云函数。

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

如何调用异步函数?

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

文档中声明返回promise,但我不确定如何将现有的异步函数包装成可以返回的promise。

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

若要在异步操作后返回数据,请返回promise。这个promise返回的数据被发送回客户端。例如您可以返回可调用函数写入的经过净化的文本实时数据库:

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

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

您可以使onCall上传递的回调函数异步,以便在其中使用await:

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

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

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

在任何一种情况下,您都必须返回一个promise,该promise使用要序列化并发送到客户端应用程序的数据进行解析。这两种方法都能做到这一点。

相关内容

  • 没有找到相关文章

最新更新