Иногда облачные функции firebase не выполнялись - PullRequest
1 голос
/ 13 июля 2020

Привет, я использую облачную функцию для агрегирования данных, созданных в суб-коллекции, в родительскую коллекцию, когда я ее тестирую, она работает как шарм, но когда я развертываю ее в своей производственной среде, это иногда (не является обычным но происходит) данные не агрегируются в родительский документ.

Я думаю, что функция не выполняется, потому что у меня нет ошибок в журналах.

Вот мой код функции

exports.aggregateTranlationsToSong = functions.firestore
    .document("songs2/{songId}/translations/{langId}")
    .onCreate((event, context) => {
        const { songId, langId } = context.params;

        console.log({ songId, langId });

        let songRef = admin
            .firestore()
            .collection("songs2")
            .doc(songId);

        return admin
            .firestore()
            .runTransaction(transaction => {
                return transaction.get(songRef).then(songSnap => {
                    let actualSongData = songSnap.data();

                    let translations = actualSongData.lyric_translations;
                    if (translations === undefined || translations === null)
                        translations = {};

                    translations[langId] = true;
                    console.log({ translations });

                    return transaction.update(songRef, {
                        lyric_translations: translations
                    });
                });
            })
            .catch(e => {
                console.error(e);
            });
    });
...