我制作了一个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混为一谈,这是没有意义的。只需使用wait-不必为回调而烦恼。也许这会奏效:
return stripe.customers.retrieve("cus_H5UarU16gpUbqM")