我正在导出一个可以从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使用要序列化并发送到客户端应用程序的数据进行解析。这两种方法都能做到这一点。