我正在尝试将条纹支付与我的Firestore Firebase数据库集成。我在弄清firebase doc示例中给出的添加付款来源功能时遇到了麻烦。我在这里想念什么?
exports.addPaymentSource = functions.firestore
.document('Customers/{userId}/paymentSources/{paymentId}')
.onWrite((change, context) => {
let newPaymentSource = change.after.data();
if (newPaymentSource === null){
return null;
}
return admin.firestore().collection("Customers").doc(`${context.params.userId}`).get('customer_id')
.then((snapshot) => {
return snapshot.val();
}).then((customer) => {
return stripe.customers.createSource(customer, {newPaymentSource});
}).then((response) => {
return change.after.ref.parent.set(response);
}, (error) => {
return change.after.ref.parent.child('error').set(userFacingMessage(error));
}).then(() => {
return reportError(error, {user: context.params.userId});
});
});
我尝试了
console.log(snapshot.val())
,它给了我一个类型错误。
答案 0 :(得分:0)
您正在从Cloud Firestore中读取内容,但使用的是实时数据库的变量名和方法调用。虽然这两个数据库都是Firebase的一部分,但它们是完全独立的,并且具有不同的API。
Firestore的等效代码为:
return admin.firestore().collection("Customers").doc(`${context.params.userId}`).get()
.then((doc) => {
return doc.data();
}).then((customer) => {
...
另请参阅: