如何在firebase函数中将参数传递给cors
Posted
技术标签:
【中文标题】如何在firebase函数中将参数传递给cors【英文标题】:How do I pass parameters to cors within a firebase function 【发布时间】:2020-03-14 08:18:41 【问题描述】:我正在尝试将基本字符串参数发送到 firebase 函数中的 cors。但是,我无法找到一种方法来传递参数,而不会出现 cors 并阻止我的请求。
const functions = require('firebase-functions');
const cors = require('cors')(origin:true)
exports.sendMail = functions.https.onRequest((request, response) =>
cors(request, response,() =>
var variableA = request.body.A
var variableB = request.body.B
var variableC = reques.body.C
response.send("Function run completed")
)
正在使用 axios.get() 调用 Firebase 函数
axios.get('someURL',
A:variableA,
B:variableB,
C:variableC
)
.then(res =>
const output = res.data;
console.log("message output = " + output)
)
请求和 firebase 功能按预期正常工作。但我不知道如何正确传递参数。有人知道怎么做吗?
重要的编辑! - 我应该补充一点,上面代码中显示的方法导致参数未定义。如果我尝试以任何方式从 axios 调用中引用请求和响应对象(第一对请求和响应对象),那就是 cors 错误突然爆发的时候。
【问题讨论】:
“我应该补充一点,上面代码中显示的方法导致参数未定义”->哪个方法?如果您执行...cors(request, response,() => var variableA = request.body.A ... console.log(variableA);...
,您会在 CF 控制台中看到什么?
我相信这就是上面代码中显示的内容,导致变量未定义。如果我错了,请纠正我。
我认为您的部分问题是您正在 req.body
中查找 GET
请求的参数。 GET
requests 不应该有正文(仅查询参数),虽然我不确定这是问题的原因,但它可能没有帮助。我建议使用POST
或使用req.query
查询参数。
是的,这对我来说是一个糟糕的错误。非常感谢!
【参考方案1】:
您应该使用axios.post()
:通过执行axios.get()
,body
不会传递给云函数。
axios.post('someURL',
A:variableA,
B:variableB,
C:variableC
)
.then(res =>
const output = res.data;
console.log("message output = " + output)
)
【讨论】:
是的,这是我的一个糟糕的错误。谢谢你帮我解决这个问题以上是关于如何在firebase函数中将参数传递给cors的主要内容,如果未能解决你的问题,请参考以下文章
如何在 addTarget #Selector 中将静态参数传递给 UIRefreshControl() 的本地函数
如何在 Laravel 8.x 中将附加参数传递给验证器-> 后函数?