以下代码在我登录后立即刷新网页时生成空用户。此外,当访问令牌过期时,页面会自动注销。我该如何解决这个问题?
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以某种方式使用这个本地存储来验证访问令牌。
答案 0 :(得分:0)
正如您在最近的编辑中所说,在您解雇localStorage.clear()
后,您的错误被取消了。有关这可能以不同方式影响您的应用程序的更多信息,您可能需要look at this article。
很高兴你得到它的工作!