无法从允许未经身份验证的邮递员调用谷歌云函数



我有以下简单的谷歌云功能:

exports.recordInfo = functions.https.onRequest(async(request, response) => {
functions.logger.info({
requestData: request.body.data
})
functions.logger.info("Hello logs!", {
structuredData: true
});
response.send("Hello from Firebase!");
});

我可以让它在模拟器中运行,并获得本地主机链接,在那里我可以在浏览器中看到响应。我无法测试从邮递员发送请求数据。相同的链接只是挂起而没有响应。我已经尝试在模拟器和部署的函数中使用request、request.body和request.rawBody。

我正试图找到一个类似poster的平台来发送包含以下对象的请求:

{
'data': {
'objID': 'abc123',
'objName': 'obj1',
'objDescription': 'object'
}
}

最终目标是将该对象记录为数据库中的firestore文档,但现在我只想确保能够在云功能中查看并记录该对象。

当我查看函数url时,我得到的唯一响应是";你好,来自Firebase";。我也看到了";你好日志"语句,以及与已部署函数相关联的日志中。我在部署的云函数日志中没有看到具有"structuredData"键的对象。

我能够通过在正文中提供数据对象的函数URL的post请求来重现这个问题。

问题是,您需要使用CORS库来访问请求主体,如本例onRequest函数所示,该函数在关于HTTP请求的谷歌文档中引用。

相关内容

最新更新