首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在登录后,Firebase将退出用户。

在登录后,Firebase将退出用户。
EN

Stack Overflow用户
提问于 2019-02-24 11:03:47
回答 1查看 128关注 0票数 0

我有一个问题,我的防火墙托管网站有一个/account路径,动态加载内容页,这取决于用户是否登录。为了检测用户状态,我使用了firebase的onAuthStateChange回调:

代码语言:javascript
复制
firebase.auth().onAuthStateChanged((user) => {
    console.log("authstate changed:"+user);
    let pagereq = new XMLHttpRequest();
    if (user) {
        console.log(user.email);
        user.getIdTokenResult(true).then((idtokenres) => {
            if(idtokenres.claims.admin){
                console.log("user is admin");
            }
        });
        pagereq.open("GET","./account-management/management.html",true);
        logout.addEventListener("click",handleLogout());
    } else {
        logout.parentNode.removeChild(logout);
        pagereq.open("GET","./account-management/login/login-page.html",true);
    }
}

当用户在动态加载的登录表单中签名时,将出现并启用带有电子邮件和密码的登录。用户现在输入他的凭据并点击‘登录’。内容区域由于回调而重新加载,并显示控制台页。问题来了。当用户登录时,onAuthStateChanged被调用两次:第一次使用精确的user-Object成功,第二次使用user = null。控制台页在控制台页本身加载后动态加载脚本。在脚本中,还有一个onAuthStateChanged函数将被正常调用。在这里,回调只调用一次,user也是空的。为什么会这样,我如何解决这个问题?I无法检测为什么在第二个调用时user-Object为空,在动态加载的脚本中也为null。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-24 12:07:19

尝试在您的()上删除handleLogout,使其类似于logout.addEventListener(‘click’, handleLogout)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54851216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档