gpt4 book ai didi

javascript - 使用请求库的 Firebase 函数未触发

转载 作者:行者123 更新时间:2023-11-29 18:47:58 25 4
gpt4 key购买 nike

差不多了,但由于某些原因,我的 HTTP post 请求没有触发,最终函数超时。完全在我自己身边并发布我的代码以查看是否有人接受我完全错过的任何菜鸟 Action 。注意:数据库写入完成,所以我假设 HTTP Post 请求没有触发,这是一个安全的假设吗?或者 JS 是另一种野兽?

exports.stripeConnect = functions.https.onRequest((req, res) => {
var code = req.query.code;
const ref = admin.database().ref(`/stripe_advisors/testing`);
var dataString = `client_secret=sk_test_example&code=${code}&grant_type=authorization_code`;
var options = {
url: 'https://connect.stripe.com/oauth/token',
method: 'POST',
body: dataString
};

function callback(error, response, body) {
if (!error && response.statusCode === 200) {
console.log(body);
}
}

request(options, callback);
return ref.update({ code: code });
});

最佳答案

我知道你想 POST 到 https://connect.stripe.com/oauth/token通过使用 request 库,如果成功,您希望将 code 值写入数据库。

您应该在 Cloud Functions 中使用 promises 来处理异步任务。默认情况下请求不返回 promise ,因此您需要为请求使用接口(interface)包装器,如 request-promise

因此,通常应该执行以下操作:

.....
var rp = require('request-promise');
.....

exports.stripeConnect = functions.https.onRequest((req, res) => {
var code = req.query.code;
const ref = admin.database().ref('/stripe_advisors/testing');
var dataString = `client_secret=sk_test_example&code=${code}&grant_type=authorization_code`;
var options = {
url: 'https://connect.stripe.com/oauth/token',
method: 'POST',
body: dataString
};

rp(options)
.then(parsedBody => {
return ref.update({ code: code });
.then(() => {
res.send('Success');
})
.catch(err => {
console.log(err);
res.status(500).send(err);
});

});

关于javascript - 使用请求库的 Firebase 函数未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52525371/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com