Firebase注册功能

时间:2019-05-27 19:21:35

标签: javascript firebase firebase-authentication

我有一个名为signup的功能,该功能使用Web项目中的javascript将用户添加到我的Firebase数据库。我的函数运行良好,但是当我想在函数末尾重定向到另一个页面时,它不会将用户添加到我的数据库中。在底部的代码中,如果删除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 :(得分:0)

  

createUserWithEmailAndPassword(...)

正在返回未来。因此,您的catch函数中的代码将被异步调用。

因此,以下代码

if (errorCode == null) {
      window.location = '/index.html';
}
在您甚至没有从语句中检索答案之前,可能会调用

,因为它不在错误块中。目前,errorCode仍为null。

要解决此问题,您可以访问函数调用的“ then”回调:

firebase.auth().createUserWithEmailAndPassword(UserEmail,UserPassword).then((userData) {
    //Redirect the user here
}).catch((error) {
    //Your Error-Handling
});