У меня есть довольно редкая страница "register.html", где я читаю адрес электронной почты и пароль пользователя и регистрируюсь через createUserWithEmailAndPassword
. У меня есть .then()
метод, который НЕ вызывается. У меня также есть прикрепленный .catch()
метод, который ДЕЙСТВИТЕЛЬНО вызывается с ошибкой user is not defined
.
Во-первых, user is not defined
кажется более подходящим для входа в систему, чем для регистрации. Все дело в том, чтобы «определить нового пользователя!»
Во-вторых, у меня также есть .onAuthStateChanged
прослушиватель, который ДЕЙСТВИТЕЛЬНО показывает, что статус пользователя меняется на авторизованный после регистрации.
В-третьих, зайдя в панель авторизации firebase, я действительно вижу только что созданного пользователя!
Почему вызывается мой catch
блок, а не then
?
Вот мой код:
auth.createUserWithEmailAndPassword(username, password)
.then(function(){
//user signed in
console.log('auth', user, 'registered');
if(location.href == document.referrer){
location.href = "/website/index.html";
}
else{ location.href = document.referrer; }
})
.catch(function(error) {
var errorCode = error.code;
var errorMessage = error.message;
$('#passwordAlert').show();
$('#passwordError').text(errorMessage);
console.log("Registeration failure:", username);
console.log('\t',errorCode);
console.log('\t',errorMessage);
//alert user
});