无法获取firebase userID

时间:2017-02-08 22:57:49

标签: javascript firebase firebase-realtime-database firebase-authentication

我是firebase和Javascript的新手,我尝试过很多方法通过userid获取用户数据存储,但我得到的是数据存储在“未定义”下。

这是我的JS代码

function handleRegister() {
    var fname = document.getElementById('fname').value;
    var lname = document.getElementById('lname').value;
    var email = document.getElementById('email').value;
    var password = document.getElementById('password').value;
    var ref = firebase.database().ref();
     console.log(email);
     console.log(fname);

        if (email.length < 4) {
        alert('Please enter an email address.');
        return;
      }
      if (password.length < 4) {
        alert('Please enter a password.');
        return;
      }

      firebase.auth().createUserWithEmailAndPassword(email, password)
      .then(function(user) {
        var uid = user.uid;
         var postData = {
            Firstname: fname,
            Lastname: lname,
            email: email,
      };
        // Get a key for a new Post.
      var newPostKey = firebase.database().ref().child('Users').push().uid;

      var updates = {};
      updates['/Users/' + newPostKey] = postData;
      // updates['/user-posts/' + '/' + newPostKey] = postData;
      return firebase.database().ref().update(updates);
      })
    }

我想要做的是,在注册新用户之后,我想将用户信息(即名字和姓氏)保存到数据库中,在他们认证期间生成的各自的uid下。 但目前我无法让uid和新用户替换先前在DB中输入的用户,而不是作为新条目输入。

enter image description here

1 个答案:

答案 0 :(得分:2)

通过组合样本中的部分,你会使事情变得复杂。

保存刚注册的用户需要:

firebase.auth().createUserWithEmailAndPassword(email, password) .then(function(user) {
   var root = firebase.database().ref();
   var uid = user.uid;
   var postData = {
      Firstname: fname,
      Lastname: lname,
      email: email
   };
   root.child("Users").child(uid).set(postData);
})