簡體   English   中英

如何獲取用戶 uid 並在身份驗證之外打印它 function

[英]How to get user uid and print it outside the auth function

請幫助我,我想獲取用戶 UID 並將其保存在全局變量中並在需要的地方使用它我正在使用此方法但它不起作用

'''

var userUID= null;

firebase.auth().onAuthStateChanged(function(user){
  if(user){
      console.log("logged in");
      userUID=firebase.auth().currentUser.uid;
      console.log(userUID);  //This statement is printing properly

    }
  else{
      console.log("Not Logged In");
  }
});


  console.log(userUID); // This statement is returning null (i want this to work)

'''

這里的問題是 Firebase 需要一些時間才能自動登錄。 在等待登錄時,不會調用onAuthStateChanged ,當 JS 繼續執行console.log(userUID)時, userUID仍然是 null。

不幸的是,真正的解決方案是更改應用程序的結構以能夠處理 null userUID 未登錄的用戶很可能瀏覽此頁面,因此無論如何都可能需要對其進行處理。 有兩種方法可以做到這一點:

  1. 手動檢查userUID是否為null,並據此禁用功能;
  2. 將您的代碼更改為僅onAuthStateChanged后執行,以便始終使用有效的userUID執行您的代碼。 這可以根據需要使用 Promise 或回調來完成。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM