Firebase 使用电子邮件和密码创建用户并将数据放入数据库

新手上路,请多包涵

我想使用函数 createUserWithEmailAndPassword 创建用户,然后将该用户的数据放入我的数据库,但它不起作用。用户被添加到我在 firebase 中的身份验证选项卡,但不在我的数据库中。我也没有收到错误。

 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;
        });
});

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

阅读 218
1 个回答

嗨,我遇到了完全相同的问题。但是我用了一个本地函数来解决它。是这样的:

 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);
  }
}

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

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