繁体   English   中英

使用电子邮件创建用户时,如何使用Javascript在Firebase中的数据库中添加元素

[英]When creating a user with email, how to add elements in DB in Firebase in Javascript

因此,我是Firebase的新手,我一直在查看Firebase文档,但尚未找到如何执行以下操作的方法:

用户输入以下内容:用户名,电子邮件,密码,确认密码。 当我调用“ createUserWithEmailAndPassword”时,如果可以的话,我希望同时在Firebase中的数据库中创建条目。 我尝试编写以下行:

firebase.auth().createUserWithEmailAndPassword(userEmailCreate, userPasswordCreate).then(function(){
  //do what I want
}).catch(function (error) {})

但这是行不通的。 我究竟做错了什么? 或者,您对使用身份验证方法创建的uid如何在条目User中添加其他元素有任何建议?

    function createUser() {
  //instance of database Firebase
  var database = firebase.database();
  //Get inputs from user
  var userUsername = document.getElementById("usernameCreation_Field").value;
  var userEmailCreate = document.getElementById("emailCreation_field").value;
  var userPasswordCreate = document.getElementById("passwordCreation_field").value;
  var userPassword2Create = document.getElementById("passwordCreation2_field").value;

  if (userPasswordCreate == userPassword2Create && userUsername.length > 0) {
    //If passwords match try to create user
    firebase.auth().createUserWithEmailAndPassword(userEmailCreate, userPasswordCreate).catch(function (error) {
      // Handle Errors here when creating account
      var errorCode = error.code;
      var errorMessage = error.message;
      document.getElementById('createSuccess').style.display = 'block';
      document.getElementById('createSuccess').innerHTML = errorMessage;
    });
    //Passwords don't match
  } else if(userUsername.length == 0){
    document.getElementById('createSuccess').innerHTML = 'Username must be filled!';
    document.getElementById('createSuccess').style.display = 'block';
  } else {
    document.getElementById('createSuccess').style.display = 'block';
    document.getElementById('createSuccess').innerHTML = 'Passwords don\'t match!';
  }

}

//Add new user to database
function setUserData(userId, username, email){
  firebase.database().ref('users/' + userId).set({
    username: name,
    email: email,
    profile_picture : imageUrl,
    topScore : topScore
  });
}

预先感谢您的宝贵时间!

您的代码没有在任何地方调用setUserData ,因此可以肯定地解释了为什么没有任何内容写入数据库。

如果从createUser... then ,您可能希望致电:

firebase.auth().createUserWithEmailAndPassword(userEmailCreate, userPasswordCreate).then(function(userCredential) {
  setUserdata(userCredential.user.uid, userUsername, userEmailCreate);
}).catch(function (error) {
  // Handle Errors here when creating account
  var errorCode = error.code;
  var errorMessage = error.message;
  document.getElementById('createSuccess').style.display = 'block';
  document.getElementById('createSuccess').innerHTML = errorMessage;
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM