Firebase 在创建帐户后返回用户对象

新手上路,请多包涵

我试图在 Firebase 中创建一个用户,然后在 Web 服务器上的数据库中创建一个用户配置文件。我已经实现了以下代码,可以很好地创建用户。但是我不确定如何接收用户 ID(我需要一个唯一 ID)来创建数据库结构。有没有办法在调用 createUserWithEmailAndPassword 时返回用户对象?

我试图实现一个 firebase.auth().onAuthStateChanged 函数,但随后收到超时错误

如果你还没有收集到这是一个网络应用程序。

 <script>
function createUser() {
var Result = "true";
var textUser = document.getElementById('userName').value;
var textPassword = document.getElementById('userPassword').value;
var textAccountID = document.getElementById('accountRef').value;
var textDateCreated = document.getElementById('dateCreated').value;
var textDisplayName = document.getElementById('displayName').value;
var UID;

firebase.auth().createUserWithEmailAndPassword(textUser, textPassword).catch(function(error) {
  // Handle Errors here.
  var errorCode = error.code;
  var errorMessage = error.message;
  return Result = "false";
  // ...
});

writeUserData(UID, textDisplayName, textAccountID, textDateCreated);

return Result;

}

function writeUserData(userId, displayName, accountID, dateCreated) {
  firebase.database().ref('User/' + userId).set({
  userId:{
    AccountID: accountID,
    Created: dateCreated,
    Name: displayName}
  });
}

</script>

原文由 PowerMan2015 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 330
2 个回答

为了在客户端获取用户 ID,您应该这样做:

 firebase.auth().createUserWithEmailAndPassword(textUser, textPassword)
.then(function(user){
  console.log('uid',user.uid)

  //Here if you want you can sign in the user
}).catch(function(error) {
    //Handle error
});

正如这里所描述的:

https://firebase.google.com/docs/reference/js/firebase.auth.Auth#createUserWithEmailAndPassword

返回包含非空 firebase.User 的非空 firebase.Promise

原文由 Ymmanuel 发布,翻译遵循 CC BY-SA 3.0 许可协议

看起来 firebase 对此方法进行了一些更改。接受的解决方案需要一点修复:

 firebase.auth().createUserWithEmailAndPassword(textUser, textPassword)
.then(function(data){
  console.log('uid',data.user.uid)

  //Here if you want you can sign in the user
}).catch(function(error) {
    //Handle error
});

现在你可以通过 data.user 访问用户

希望这可以帮助 :)

原文由 Gerardo BLANCO 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题