我做了一个Firebase可调用函数来调用Stripe API以获取Stripe客户对象

exports.getDefaultPayment = functions.https.onCall(async (data, context) => {
  await stripe.customers.retrieve("cus_H5UarU16gpUbqM", (customer) => {
    // asynchronously called
    return customer;
  });
});


然后我试图简单地记录该对象

onPress={() => {
              const getDefaultPayment = functions().httpsCallable(
                'getDefaultPayment'
              );
              getDefaultPayment().then((result) => {
                console.log(JSON.parse(result.data));
              });
            }}


但结果为空

最佳答案

您的可调用函数实际上没有向客户端返回任何内容。您需要在顶层而不是在回调内部的return语句。另外,似乎您正在将回调与async / await混合在一起,这没有任何意义。只需使用await-不必理会回调。也许这会起作用:

return stripe.customers.retrieve("cus_H5UarU16gpUbqM")

10-05 20:41