簡體   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