Я пытаюсь создать функцию в 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 раз, что не имеет смысла.Есть ли способ исправить это?