Функция регистрации Firebase - PullRequest
0 голосов
/ 27 мая 2019

У меня есть функция с именем signup, которая добавляет пользователя в мою базу данных firebase с помощью javascript в моем веб-проекте.Моя функция работает хорошо, но когда я хочу перенаправить на другую страницу в конце функции, она не добавляет пользователя в мою базу данных.В нижнем коде, если я удаляю оператор if, все работает отлично, но с ним он перенаправляет на страницу индекса, но не добавляет пользователя.

    function signup() {
        var UserEmail = document.getElementById("email").value;
        var UserPassword = document.getElementById("password").value;
        var errorCode = null;
        var errorMessage = null;       
        firebase.auth().createUserWithEmailAndPassword(UserEmail,UserPassword).catch(function (error) {
                // Handle Errors here.
                errorCode = error.code;
                errorMessage = error.message;
                console.log(errorMessage);
            });

            if (errorCode == null) {
                window.location = '/index.html';
            }
        }

1 Ответ

0 голосов
/ 28 мая 2019

createUserWithEmailAndPassword (...)

возвращает будущее.Таким образом, код внутри вашей функции catch будет вызываться асинхронно.

В результате может быть вызван следующий код

if (errorCode == null) {
      window.location = '/index.html';
}

, прежде чем вы даже получите ответ из своего утверждения,так как его нет в блоке ошибок.В настоящее время errorCode по-прежнему равен нулю.

Чтобы решить эту проблему, вы можете получить обратный вызов then вашего вызова функции:

firebase.auth().createUserWithEmailAndPassword(UserEmail,UserPassword).then((userData) {
    //Redirect the user here
}).catch((error) {
    //Your Error-Handling
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...