繁体   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