我具有firebase http cloud功能
exports.createCharge = functions.https.onCall((data, context) =>{
在此功能内,我正在创建条纹充电
return stripe.charges.create(chargeInfo, { idempotency_key }, function (err, charge){
if(err){
return err.message;
}else{
return "done";
}
});
条带电荷是http函数中的最后一行代码。我的问题是错误消息没有返回给客户端,并且我的应用程序中的task.getResult()
在完成后返回为null。同样,变量不会在条带电荷之外持续存在。 err
和charge
必须在条带电荷功能的范围内使用,就像条带电荷功能在其自己的环境中运行一样。如何将err
或charge
返回给客户?
答案 0 :(得分:2)
Stripe.charges.create
是一个asynchronous
调用,为了返回异步调用的结果/错误,Firebase
函数要求您返回一个Promise,该Promise将返回值[0] >
因此,为了err
或charge
,不要像您发布的代码示例那样使用callback
,而应使用promise.then
。
return stripe.charges.create(chargeInfo, { idempotency_key })
.then((charge) => charge)
.catch((error) => error);
希望以上内容有助于解决您的问题。