Firebase 云函数:调用可调用函数时无法提取参数



我正在使用Flutter SDK来调用云函数。我添加了一个参数someField,但在云端,它无法检索,并且始终是undefined。这就是我对云功能的称呼

static Future<void> doSomething() async {
await Firebase.initializeApp();
final HttpsCallable callable = CloudFunctions.instance.getHttpsCallable(
functionName: 'myFunction',
);
dynamic resp = await callable.call(
<String, dynamic>{
'someField': 'Hurray!',
},
);
}

云函数编写如下

exports.myFunction = functions.https.onRequest((req, res) => {
cors(req, res, () => {
const myParameter = req.body.someField; // is always Undefined
// also tried
// req.query.someField
// req.params.someField
doSomething(myParamter)
})
});

您将客户端应用程序上的可调用函数与后端的HTTPS函数混合在一起。请查看文档以了解它们之间的区别。如果要在客户端上使用Firebase SDK来调用云函数,则应声明使用onCall而不是onRequest。当您用onCall编写一个可调用函数时,您将可以通过传递给回调的第一个参数访问输入参数。

exports.myFunction = functions.https.onCall((data, context) => {
// data.someField should be populated from your client request
});

最新更新