我正在Firebase网络应用程序中实施Stripe付款模块。
我通过云功能创建Stripe充电,如下所示:
exports.createStripeCharge = functions.database.ref('...').onWrite(event => {
....
let chargeStatus;
return stripe.charges.create(charge, {idempotency_key})
.then(returnedcharge => {
chargeStatus = returnedcharge.status;
return event.data.adminRef.set(returnedcharge)
})
.then(() => {
return admin.database().ref(`/stripeCardCharges/${event.params.orderId}`).set({'status': chargeStatus});
})
.catch(error => {
...
})
如您所见,我尝试按照Firebase小组的建议仔细链接承诺。
但是我需要在两个承诺中使用returnedcharge
对象,一个接一个地链接:
returnedcharge.status
写入数据库,但是在另一个节点(因为访问权限不同)然后我创建了一个变量,我在第一个承诺中填充,然后在下一个承诺中使用。
我的问题是:这是一个好方法吗?
另一个相关的问题(我认为答案是“不”!):是否有可能(并且有意义!)将两个数据库写入(即设置)合并在一个承诺中?如果是的话,那你又回来了什么?
答案 0 :(得分:1)
对我来说还不错。似乎没有问题就完成了工作。