в моем облачном коде, в моей функции HTTPS Callable, как только я пытаюсь взаимодействовать с firestore, кажется, что все перестает работать.Моя функция в моем файле index.js:
exports.paymentInfoGiven = functions.https.onCall((data, context) => {
console.log(data);
console.log(context);
(async function() {
// Create a Customer:
const customer = await stripe.customers.create({
source: data.tokenId,
email: data.email,
});
admin.firestore().collection('users').doc(data.userId).update(
{customerId: customer.id, givenPaymentInfo: true}
).then(
data => {
console.log('it worked: ' + data);
} // this logged 5 minutes after the above console.logs
).catch(
err => {
console.log('it didnt work1: ' + err);
}
);
admin.firestore().collection('games').doc(data.gameId).collection('host').get()
.then(
hostCol => {
hostCol.forEach(
host => {
if (data.userId === host.id) {
admin.firestore().collection('games').doc(data.userId)
.update({givenPaymentInfo: true})
.then(
data => {
console.log('worked' + data);
}
)
.catch(
err => {
console.log('it didnt work2: ' + err);
});
}
}
);
}
)
.catch(err => {
console.log('it didnt work3: ' + err);
});
})();
});
Приведенный выше код создает клиента на Stripe просто отлично.Он записывает первые две строки просто отлично и ЭТО ". Это не регистрирует вещи внутри .then () или .catch (), я не получаю никаких сообщений об ошибках (см. Изображение ниже), он развертывается просто отлично, когдая 'firebase deploy'. Не уверен, что происходит.
Мой импорт для моего файла index.js:
const functions = require('firebase-functions');
const admin = require('firebase-admin');
const stripe = require("stripe")("secret_key");
Мой код на стороне клиента, который вызывает вышеуказанную функцию:
import {AngularFireFunctions} from '@angular/fire/functions';
import {from, Observable, Subscription} from 'rxjs';
constructor(private fns: AngularFireFunctions) {}
uponGivingPaymentInfo(email: string, tokenId: string, userId: string, gameId: string): Observable<any> {
const callable = this.fns.httpsCallable('paymentInfoGiven');
return callable({tokenId: tokenId, email: email, userId: userId, gameId:gameId});
}
Журналы моего пожарного магазина после выполнения afterGivingPaymentInfo
Любая помощь очень ценится! Заранее спасибо!