刷新

时间:2016-12-13 23:00:47

标签: javascript firebase firebase-authentication

以下代码在我登录后立即刷新网页时生成空用户。此外,当访问令牌过期时,页面会自动注销。我该如何解决这个问题?

function initApp() {
    firebase.auth().onAuthStateChanged(function(user) {
      console.log("user in onAuthStateChanged:");
      console.log(user);
      userGlobal = user;
      if (user) {
        $("#logindiv").hide();
        $("#userWelcome").text("Welcome, " + user.email);

        $("#logOut").click(function(){
          firebase.auth().signOut().then(function() {
            $("#logindiv").show();
            $("#testdiv").hide();
          }, function(error) {
            alert(error);
          })
        });

        $("#testdiv").show();

        visiProgcontroller.init(function() {
          visiProgcontroller.makeUIactions();
        })
      }

      else {
        $("#loginButton").click(toggleSignIn);
        $("#logindiv").show();
        $("#testdiv").hide();
      }

    })
  }

  window.onload = function() {
    initApp();
  };

编辑:可能的原因是由于以下代码。当我发表评论时,onAuthStateChanged返回非null用户。一旦我把它放回去,用户就是空的。任何有根据的猜测,为什么这会阻止/使用户为空?

    visiProgcontroller.init(function() {
      visiProgcontroller.makeUIactions();
    });

发现错误。我正在做一个localStorage.clear(),我认为firebase以某种方式使用这个本地存储来验证访问令牌。

1 个答案:

答案 0 :(得分:0)

正如您在最近的编辑中所说,在您解雇localStorage.clear()后,您的错误被取消了。有关这可能以不同方式影响您的应用程序的更多信息,您可能需要look at this article

很高兴你得到它的工作!