使用Firebase功能处理POST请求

时间:2020-09-17 05:16:59

标签: firebase google-cloud-functions webhooks

我正在使用支点收集数据。支点有一个webhook feature

我创建了一个Firebase函数,并将Firebase函数与函数URL链接到支点webhook功能。 https://us-central1-example.cloudfunctions.net/fulcrumHook

这是我现有的功能。

exports.fulcrumHook = functions.https.onRequest((request, response) => {
  console.log(response.data.form_id)
  response.send(200)
})

经过数小时的调试,在日志中,我可以看到所需的数据正在通过中,但是我正在努力在函数本身中访问它。

当我记录请求时,我得到IncomingMessage { _readableState: ReadableState { objectMode: false,.....

当我记录响应时,会得到ServerResponse { domain: null, _events: [Object: null prototype] { finish: [ [....以及正文,其中包含我需要的实际数据。

我已经搜索了所有可以想到的有关如何处理这些数据的关键字,但是我完全陷入了困境。

我是否需要像response.then(data => ...stuff)那样处理承诺

我是否需要使用response.on('data', (data) => ...stuff)

建立类似于套接字的连接?

1 个答案:

答案 0 :(得分:0)

您需要的一切都在documentation for HTTP triggers中。

请求和响应本质上是Express请求和响应对象。

用作onRequest()的参数,Request对象使您可以访问客户端发送的HTTP请求的属性,而Response对象为您提供一种发送回复给客户。

您可以单击这些链接的API来详细了解它们的工作方式。

可以通过reading values from the request找到传递给函数的数据。如果是POST请求,则将按以下方式读取表单值:

request.body.form_id

使用response.send()发送响应。只需向其传递一个对象,该对象将自动序列化为JSON。或从上方将链接的API用于响应对象,以了解有关您的选项的更多信息。