Как объясняет Тичерхаз в своем комментарии, вам необходимо использовать метод then()
, чтобы определить, когда Promise возвращается асинхронным методом createUserWithEmailAndPassword()
Следующие действия должны помочь:
firebase.auth().createUserWithEmailAndPassword(email.toString(),password.toString())
.then(userCredential => {
var email = userCredential.user.email;
alert("Sucessfully Created");
})
.catch(function(error) {
var errorCode = error.code;
var errorMessage = error.message;
if (errorCode == 'auth/weak-password') {
alert('The password is too weak.');
} else {
alert(errorMessage);
}
console.log(error);
});
}
Обратите внимание, что, как описано в do c, "при успешном создании учетной записи пользователя этот пользователь также будет войдите в свое приложение ", поэтому вам не нужно использовать метод onAuthStateChanged()
в этом случае .
В одном из ваших комментариев выше вы говорите" только до появления предупреждающего сообщения «проверка» этот скрипт выполняется На самом деле, если нет ошибки при создании нового пользователя, обратный вызов обработчика отклонения, переданный в catch()
, не вызывается, и поэтому вы не получите ответ о том, что createUserWithEmailAndPassword()
был правильно выполнен. Для этого вам нужен метод then()
.