Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Firebase create user with email and password and put data in database

I want to create users with the function createUserWithEmailAndPassword and then put the data of that user into my database but it doesn't work.. the user is added to my authentication tab in firebase but not in my database. I also don't get an error.

registerUser.addEventListener('click', function (user) {
    event.preventDefault();
    closeRegisterForm();

    email = registerEmail.value;
    password = registerPassword.value;

    firebase.auth().createUserWithEmailAndPassword(email, password)
        .then(function (event) {
            var ref = firebase.database().ref("users").child(user.uid).set({
                email: user.email,
                uid: user.uid
            });
        })
        .catch(function (error) {
            var errorCode = error.code;
            var errorMessage = error.message;
        });
});

1 Answers

Hi I was having the exact same problem. But i used a local function to solve it. Something like this:

createNewUser(form) {
  //create new user with provided data of the form
  this.afAuth.auth.createUserWithEmailAndPassword(form.email, form.password)
    .then(function(firebaseUser) {
      console.log("User " + firebaseUser.uid + " created successfully!");
      updateFirestore(form, firebaseUser.uid);
      return firebaseUser;
    }).catch(function(error) {
      alert(error)
    });

  function updateFirestore(form, uidNewUser) {
    //push data into firestore using the uid provided

    let data = {};
    data['mail'] = form.email;
    data['name'] = form.name;
    //se empuja el arreglo data en el documento del usuario
    this.afs.collection('users').doc(uidNewUser).set(data);
    console.log(data, uidNewUser);
  }
}
like image 85
Daniel Avatar answered Oct 20 '25 04:10

Daniel