我的Firebase代码循环的次数比预期的多

时间:2019-05-05 05:08:42

标签: javascript database firebase recursion

我正在尝试使用JavaScript创建一个创建教室ID的函数,然后重试是否已经为用户分配了教室ID或已经存在使用该ID的课程。

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)
                    })
                })
            })
        }
    })
}

它在我的日志中显示它更改了id并运行updateUsrData(user) 2-5次,这没有任何意义。有什么办法可以解决?

0 个答案:

没有答案