簡體   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