繁体   English   中英

如何访问用户对象在不同的​​js文件

[英]How do I access the user object in a different js file

我制作了一个Google登录登录js文件,该文件可在我的网站的登录屏幕上使用。 但是,我想在我的网站上使用非常不同的javascript文件的其他页面上访问该用户对象(已登录)。 如何获得在另一个JavaScript文件上登录的用户对象? 另外,我对异步工作原理的了解非常有限,但是如果有人可以帮助我解决这个问题,我将非常感激。

另外,在代码片段上,我在下面显示了一个非常奇怪的错误。 当我console.log(name)时,它输出一个空字符串,并在某一时刻输出已登录用户的实际名称。但是,在我没有的任何js文件中,我什至没有初始化name变量,所以我有0了解如何能够获取这些数据。 然后,我继续关闭XAMPP并重新启动,现在它打印出一个空字符串,这很令人困惑,因为它应该是未定义的?

我已经尝试阅读多个论坛,并且在这一点上,我已经达到了使用firebase.auth()。onAuthStateChanged(function(user){... CODE ...})的地步。 但是,最大的问题是,如果我在函数内部重新分配变量名以在javascript文件中使用,则该函数名将无效,因为它是一个异步函数。 我基本上想提取诸如(name = user.displayName,email = user.email,id = user.uid)之类的信息,以便以后在我的JavaScript中使用。

javascript

 firebase.initializeApp(config);
    firebase.auth().onAuthStateChanged(function(user){
        if(user){
            var user = firebase.auth().currentUser;
            userName = user.displayName;
        }
        else {
            console.log("Not Signed In");
        }
    });
    console.log(name);
    console.log(userName);




//SHOWS AN EMPTY STRING ON THIS LINE                       other_file.js:39
Uncaught ReferenceError: userName is not defined           other_file.js:40
    at other_file.js:40

在此定义您的用户对象分配的用户名,如文件中window.userName =用户名窗口对象。 它将在全球范围内使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM