Добавить источник оплаты в Stripe с помощью firebase-cloud-functions? - PullRequest
0 голосов
/ 04 февраля 2019

Я пытаюсь интегрировать чередующийся платеж с моей базой данных пожарной базы.У меня возникли проблемы с определением функции добавления источника оплаты, приведенной в примере с документом Firebase.Что мне здесь не хватает?

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())

, и это дает мне ошибку типа.

Изображение базы данных Firestore

Изображение журнала ошибок

1 Ответ

0 голосов
/ 04 февраля 2019

Вы читаете из Cloud Firestore, но используете имена переменных и вызовы методов для базы данных реального времени.Хотя обе базы данных являются частью Firebase, они полностью разделены и имеют разные API.

Эквивалентный код для Firestore будет:

return admin.firestore().collection("Customers").doc(`${context.params.userId}`).get()
    .then((doc) => {
      return doc.data();
    }).then((customer) => {
      ...

Также см .:

...