Мой код Firebase циклически проходит больше раз, чем должен - PullRequest
0 голосов
/ 05 мая 2019

Я пытаюсь создать функцию в JavaScript, которая создает идентификатор класса и затем повторяет попытку, если либо уже назначен идентификатор класса, либо для этого класса уже существует класс.

const newClass = () => {
    let user = auth.currentUser;
    let classId = makeClassId(5);

    if (usrData.classId != null) {
        db.collection('classrooms').doc(usrData.classId).delete().then(() => {
            db.collection('users').doc(user.uid).update({
                classId: null
            }).then(() => {
                newClass()
                return;
            })
        })
    }

    db.collection('class').doc(classId).get().then((snapshot) => {
        if (snapshot.exists) {
            newClass()
        } else {
            db.collection('classrooms').doc(classId).set({
                teacher: user.displayName
            }).then(() => {
                db.collection('classrooms').doc(classId).collection('messages').doc('first').set({
                    text: null,
                    user: null
                }).then(() => {
                    db.collection('users').doc(user.uid).update({
                        classId: classId
                    }).then(() => {
                        updateUsrData(user);
                        setClassIdDisplay(classId)
                    })
                })
            })
        }
    })
}

В моих журналах показано, что он меняет идентификатор и запускается updateUsrData(user) 2-5 раз, что не имеет смысла.Есть ли способ исправить это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...