我正在尝试使用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次,这没有任何意义。有什么办法可以解决?