在Firebase HTTP云功能中,如何在条带收费功能中将对象返回给客户端应用程序?

时间:2018-10-05 07:07:21

标签: typescript firebase stripe-payments google-cloud-functions

我具有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。同样,变量不会在条带电荷之外持续存在。 errcharge必须在条带电荷功能的范围内使用,就像条带电荷功能在其自己的环境中运行一样。如何将errcharge返回给客户?

1 个答案:

答案 0 :(得分:2)

Stripe.charges.create是一个asynchronous调用,为了返回异步调用的结果/错误,Firebase函数要求您返回一个Promise,该Promise将返回值[0]

因此,为了errcharge,不要像您发布的代码示例那样使用callback,而应使用promise.then

return stripe.charges.create(chargeInfo, { idempotency_key })
  .then((charge) => charge)
  .catch((error) => error);

希望以上内容有助于解决您的问题。

[0] https://firebase.google.com/docs/functions/callable