Выполнение функции заняло 60002 мс, завершено со статусом: «тайм-аут» для вызываемой функции - PullRequest
1 голос
/ 23 октября 2019

У меня возникла проблема с вызываемыми функциями Firebase и триггерами аутентификации. Вы можете увидеть вызываемую функцию ниже. Когда он работает, обычно требуется менее 1 секунды, но со вчерашнего дня он часто дает ошибки тайм-аута. То же самое для триггера Auth, я просто возвращал Promise, который в этом случае записывает электронную почту пользователя в Firestore.

exports.respondToInvite = functions.https.onCall(async (data, context) => {

    if (!context.auth) {
        throw new functions.https.HttpsError('failed-precondition', 'The function must be called ' +
            'while authenticated.');
    }

    const uid = context.auth.token.uid;

    const inviteId = data.inviteId;
    const groupId = data.groupId;
    const accepted: boolean = data.accepted;

    try {

        const batch = admin.firestore().batch();
        const inviteRef = admin.firestore().collection("invites").doc(inviteId);
        batch.update(inviteRef, {
            userId: uid,
            status: accepted ? "accepted" : "rejected",
        })

        if (accepted) {
            const groupUsersRef = admin.firestore().collection("groups").doc(groupId).collection("users").doc(context.auth.uid);

            batch.set(groupUsersRef, {
                createdAt: admin.firestore.Timestamp.now()
            })

            const userRef = admin.firestore().collection("users").doc(uid);

            batch.set(userRef, {
                "groupId": groupId
            });
        }

        await batch.commit();

        return "invitation accepted";

    } catch (error) {
        console.error(error);
        throw new functions.https.HttpsError('failed-precondition', 'invite response failed',error);
    }
});

Edit: вот функция триггера Auth

exports.newUser = functions.auth.user().onCreate((user) => {
    const userRef = admin.firestore().collection("users").doc(user.uid);
    return userRef.create({
        "email": user.email,
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...