Javascript 试图捕获UID并使其成为常量

Javascript 试图捕获UID并使其成为常量,javascript,firebase,firebase-authentication,Javascript,Firebase,Firebase Authentication,您好,我正在尝试捕获const用户UID并将其记录在控制台日志中,但由于某些原因,它无法被提取,并且表示未定义const 这是我的JS function userIdShown() { firebase.auth().onAuthStateChanged(function userIdentification(user) { if(user){ const userID = user.uid; return userID } }); } userIdShown

您好,我正在尝试捕获const用户UID并将其记录在控制台日志中,但由于某些原因,它无法被提取,并且表示未定义const

这是我的JS

function userIdShown() {
  firebase.auth().onAuthStateChanged(function userIdentification(user) {
  if(user){
    const userID = user.uid;

    return userID
  }
  });
}

userIdShown();

console.log(userID);

const
变量仅在定义它们的块内可见。在您的例子中,这只是在调用传递给
onAuthStateChanged
的回调函数期间发生的。在该回调之外,它将不可见。我还建议您不要尝试在全球范围内存储它。相反,在任何时候,您都可以简单地使用来确定是否有人登录,以及他们的用户id是什么。

const
变量仅在定义它们的块内可见。在您的例子中,这只是在调用传递给
onAuthStateChanged
的回调函数期间发生的。在该回调之外,它将不可见。我还建议您不要尝试在全球范围内存储它。相反,在任何时候,您都可以简单地使用来确定是否有人登录,以及他们的用户id是什么。

我认为问题在于,您试图在定义用户id的位置之外控制日志用户id

请尝试在此处记录控制台用户ID:

 if(user){
     const userID = user.uid;
     console.log('userID', userID)
     return userID
              }

在控制台日志记录的地方,它无法读取userID的值,因为它无法“看到”它。

我认为问题在于,您试图在定义userID的地方之外对其进行控制台日志记录

请尝试在此处记录控制台用户ID:

 if(user){
     const userID = user.uid;
     console.log('userID', userID)
     return userID
              }

在控制台日志记录的地方,它无法读取userID的值,因为它无法“看到”它。

可能重复的可能重复的可能重复的可能重复的我尝试过这样做,但文档不允许我提取当前用户信息我不明白这意味着什么:“提取当前用户信息”。如果用户已登录,则currentUser是用户对象,它包含有关当前登录用户的信息,包括uid。如果用户未登录,currentUser将为空。我链接的是API文档。但就文档而言,它明确说明了一些类似于
.currentUser().displayName
的内容。我想知道我应该在哪里设置displayName和其他标准,比如现在你问的问题与你开始时问的完全不同。如果您有新问题,请单独提问,否则这些评论可能会无限期地继续。我尝试过这样做,但文档不允许我提取当前用户信息。我不明白这意味着什么:“提取当前用户信息”。如果用户已登录,则currentUser是用户对象,它包含有关当前登录用户的信息,包括uid。如果用户未登录,currentUser将为空。我链接的是API文档。但就文档而言,它明确说明了一些类似于
.currentUser().displayName
的内容。我想知道我应该在哪里设置displayName和其他标准,比如现在你问的问题与你开始时问的完全不同。如果您有新问题,请单独提问,否则这些评论可能会无限期地继续下去。