Firebase云函数request.body未定义报错,请求体参数读取求助
解决Firebase Callable云函数读取参数报错问题
问题根源
你用onCall创建的是Callable云函数,这类函数的参数传递逻辑和普通HTTP云函数不同:客户端通过call()方法传递的数据,并不会存放在request.body里,而是被封装到了request.data对象中。直接从request.body解构参数,自然会因该属性未定义抛出错误。
修正后的服务端代码
exports.addmessage = onCall({cors: true},(request) => { const {name, value} = request.data; // 改为从request.data读取参数 logger.info("name: " + name); return "prova" + name; });
额外说明
- Callable云函数是Firebase提供的封装型函数,会自动处理请求序列化、身份验证校验、跨域等逻辑,参数统一通过
request.data获取。 - 只有用
onRequest创建的普通HTTP云函数,才需要从request.body读取POST请求体中的参数。
内容的提问来源于stack exchange,提问作者Maurizio Mancini
相关产品推荐
相关产品推荐

