У меня есть угловое приложение, которое использует Firestore в качестве базы данных и облачных функций Google для обработки бэкэнда.Когда я запускаю свое приложение и нажимаю на оплату, чтобы выполнить вызов Stripe API , в журнале появляется следующее сообщение для облачных функций.
Функция вернула неопределенный, ожидаемыйОбещание или значение
Я читал несколько вопросов о стековом потоке, и они говорят о том, что я возвращаю что-либо в Обещании .then()
, но я продолжаю получать ту же ошибку.Хорошо, что фактическое значение хранится в Firestore без проблем, так что это больше похоже на предупреждение, чем на ошибку, так как ничего не ломается.
Чего мне не хватает?
exports.stripeCharges = functions.firestore
.document("/payments/users/TAMO/{paymentId}")
.onWrite((event, context) => {
const payment = event.after.data();
const paymentId = context.params.paymentId;
if (!payment || payment.charge) return;
return admin
.firestore()
.doc(`/payments/users/TAMO/${paymentId}`)
.get()
.then(snapshot => {
return snapshot.data();
})
.then(customer => {
const amount = payment.amount * 100;
const idempotency_key = paymentId;
const source = payment.token.id;
const currency = "usd";
const description = "Test Charge";
const charges = {
amount,
currency,
description,
source
};
return stripe.charges.create(charges, { idempotency_key });
})
.then(charges => {
return admin
.firestore()
.doc(`/payments/users/TAMO/${paymentId}`)
.set(
{
charge: charges
},
{
merge: true
}
);
});
});