Этот блок
ref.once("value")
.then(function(snapshot) {
userExistCheck = snapshot.exists();
});
является асинхронным, поэтому перед тем, как он получит ваши данные, он выполняет
if (userExistCheck == false){
displayName = document.getElementById("name-input").value;
firebase.database().ref('users/' + uid).set({
username: displayName,
email: email,
module1: false,
module2: false,
module3: false,
module4: false,
module5: false,
module6: false
});
window.alert("working")
}
else{
window.alert(uid);
}
, который не будет обновляться после проверки значения, если существует или нет, чтобы решить эту проблему, переместите ваш код
function createUserData(){
var ref = firebase.database().ref("users/" + uid);
ref.once("value")
.then(function(snapshot) {
userExistCheck = snapshot.exists();
if (userExistCheck == false){
displayName = document.getElementById("name-input").value;
firebase.database().ref('users/' + uid).set({
username: displayName,
email: email,
module1: false,
module2: false,
module3: false,
module4: false,
module5: false,
module6: false
});
window.alert("working")
}
else{
window.alert(uid);
}
});
}