Firebase实时数据库可以成为WebHook端点吗?

时间:2018-01-13 00:33:19

标签: post firebase-realtime-database

我的Firebase数据库的结构可以成功保存来自HTTP POST请求的数据,直接从我的Angular开发应用程序发送测试请求即可确认:

CreatePost(){
let body = {
  "host_id" : 1, 
  "uuid" : 1,
  "id" : 1, 
  "status" : "ENDED"
}
this.http.post( this.url, body )

Firebase数据库更新结果:

    -zoom
       -L1dZbBWMTIr7ojjodzg
          host_id: 1
          id: 1
          status: "ENDED"
          uuid: 1

但是,使用与第三方服务(缩放会议)的WebHook端点相同的数据库URL,数据库不会更新以响应WebHook触发事件,例如开始会议。

Zoom WebHook POST正在正确发送,正如对RequestBin的测试所确认的那样:

    FORM/POST PARAMETERS
    host_id: w_1a9RDvTKqiG_BBdV7kuw
    status: STARTED
    id: 3544245503
    uuid: oJ+nrTm7Rwq1NYlpML7W/Q==

    Raw Body:
    id=3544245503&uuid=X%2F1R2AC1QS%2Btjuhxc0Kt%2Bw%3D%3D&
    host_id=w_1a9RDvTKqiG_BBdV7kuw&status=STARTED

有没有人有使用Firebase作为其WebHook端点的经验?是否需要以特定方式为Firebase配置WebHook POST?

1 个答案:

答案 0 :(得分:2)

要在REST请求中将数据POST(或PUT)到Firebase数据库,请求正文必须包含要写入的JSON对象。来自Firebase documentation

curl -X POST -d '{
  "author": "alanisawesome",
  "title": "The Turing Machine"
}' 'https://docs-examples.firebaseio.com/rest/saving-data/fireblog/posts.json'

您的代码将主体中的表单字段作为url-encoded发布,这只是一种不同的格式。请参阅此答案,以便比较两种格式的相同数据:https://stackoverflow.com/a/9880122

如果Zoom不支持将表单字段作为JSON发布,您可以考虑创建Cloud Function来进行转换。