【问题标题】:How to Retrieve User UID After They Have Been Created Firebase JSFirebase JS 创建后如何检索用户 UID
【发布时间】:2020-07-18 23:21:13
【问题描述】:

我正在尝试检索我刚刚使用 JavaScript 在 Firebase 中创建的用户的 UID。以下是我当前的代码:

firebase.auth().createUserWithEmailAndPassword(email, pass).catch(function(error, data) {
  // Handle Errors here.
  var errorCode = error.code;
  var errorMessage = error.message;
  newusercreateduuid = data.user.uid;
  // ...
  console.log(errorCode + '   Error Message: ' + errorMessage);
});

我尝试了各种回调,包括 userData、data、user 等等,但它们都返回 null。我似乎无法在网上找到任何东西。我确实找到了另一个使用 userData 的 Stack Overflow 帖子,但它为我返回了 null。如何检索我刚刚创建的用户的 UID?

【问题讨论】:

  • 收听firebase.auth().onAuthStateChanged()

标签: javascript firebase firebase-authentication


【解决方案1】:

你需要添加这个:

可以访问then方法:

firebase.auth()
.createUserWithEmailAndPassword(email, password)
.then(function(user) 
    // user information is available here...

    
})
.catch(function(error, data) {
  // Handle Errors here.
  var errorCode = error.code;
  var errorMessage = error.message;
  newusercreateduuid = data.user.uid;
  // ...
  console.log(errorCode + '   Error Message: ' + errorMessage);
});

另外,如果你需要控制用户日志的变化,你可以这样做:

firebase.auth().onAuthStateChanged(function(user) {
  if (user) {
    // User is signed in.
    var displayName = user.displayName;
    var email = user.email;
    var emailVerified = user.emailVerified;
    var photoURL = user.photoURL;
    var isAnonymous = user.isAnonymous;
    var uid = user.uid;
    var providerData = user.providerData;
    // ...
  } else {
    // User is signed out.
    // ...
  }
});

这将为您提供登录后的用户状态。 Source

【讨论】:

  • 用户对象通过参数传递给回调。无需访问 currentUser 即可获得它。而且,事实上,currentUser 在登录后甚至可能不会立即以这种方式工作(曾经有一个关于此的错误)。
  • 抓得好!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-02-03
  • 1970-01-01
  • 2018-12-06
  • 2021-07-02
  • 1970-01-01
  • 2020-09-28
  • 1970-01-01
相关资源
最近更新 更多