Angular7 Firebase Stripe Charges Функция облака никогда не выполняется - PullRequest
0 голосов
/ 11 июля 2019

Я создаю подписки, пользователей и платежи из моего приложения angularfire. Мои подписки и пользователи создаются полосами, а также в моей базе данных, однако мои сборы не отправляются в мою базу данных firebase. Похоже, что они заряжены в моей информационной панели, но я не вижу ни записи об облачной функции, запущенной в firebase, ни записей о платежах в базе данных firebase. Любая помощь будет великолепна.

Облачная функция:

exports.stripeCharge = functions.database
    .ref('/payments/{userId}/{paymentId}')
    .onWrite((change,context) => {

const payment = change.after.val();
const userId = context.params.userId;
const paymentId = context.params.paymentId;

// checks if payment exists or if it has already been charged
if (!payment || payment.charge) return false;

return admin.database()
    .ref(`/users/${userId}`)
    .once('value')
    .then(snapshot => {
        return snapshot.val();
    })
    .then(customer => { 
        const amount = payment.amount;
        const idempotency_key = paymentId; // prevent duplicate charges
        const source = payment.token.id;
        const currency = 'usd';
        const charge = {amount, currency, source};

        return stripe.charges.create(charge, { idempotency_key });
    })
    .then(charge => {
        admin.database()
            .ref(`/payments/${userId}/${paymentId}/charge`)
            .set(charge);

        return true;
    })
    .catch(err => console.log(err))
});
...