如何使用firebase数据库函数触发器向外部API编写发布请求? (我已经支付了让你拨打外部api的火焰计划)
例如,您将{name}写入firebase数据库。写入firebase数据库时,会触发该函数,并对外部api端点www.externalendpoint.com进行后期请求?
exports.functionName=functions.database.ref('path/to/data/').onWrite(event=>{
//post request using the event.data.val()
})
谢谢< 3
答案 0 :(得分:0)
只需要axios(或fetch)并返回一个承诺:
exports.functionName=functions.database.ref('path/to/data/').onWrite(event=>{
const data = event.data.val()
return axios.post('https://my-api.com/endpoint', { data })
})
确保您返回承诺,以便在解决后功能执行结束,否则您的408请求会超时,这会增加您的费用
答案 1 :(得分:0)
使用请求库。您可以使用npm进行安装,但是当您在项目中设置Firebase Functions时,它应该包含在您获得的库集中。这是文档,以防万一:
https://www.npmjs.com/package/request
要使用请求库,请在代码开头使用require:
var request = require('request');
在字典中撰写标题,例如:
var options = {
method: 'POST',
uri: www.externalendpoint.com,
body: {
'data': event.data.val()
},
headers: {
'app_id': [YOUR_ID],
'app_key': [YOUR_KEY]
},
json: true
}
然后您可以像这样发送:
request(options)
.then(function(repos) {
// HANDLE RESPONSE HERE
})
.catch(function(err) {
// HANDLE ERROR HERE
})
希望这会有所帮助!