如何将用户数据发送到firebase数据库?

时间:2017-05-18 18:12:01

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

我正在尝试在我的firebase数据库中创建个性化用户部分。每次用户创建帐户时,都会存储信息。当我执行推送时,数据不会发送到数据库。

firebase.auth().createUserWithEmailAndPassword(email, password).then(function(result){ 
    console.log('result', result);
    if (result) {
      // User is signed in.
      result.updateProfile({displayName: document.getElementById("name").value});

      var user_info = {id: result.uid, email: result.email, display_name: result.displayName};
      console.log('user_info', user_info);
      // Storing user info into database.
      var database = firebase.database();

      console.log('user id', user_info.id);
      database.ref().child('users/' + user_info.id).push({
          displayName: user_info.display_name,
          id: user_info.id,
          email: user_info.email
       });

      window.location = "index.html"
    } else {
      alert("Something went wrong.");
    }
})

1 个答案:

答案 0 :(得分:0)

您的代码中存在争用条件。

window.location = "index.html"

窗口重定位正在中断数据库写入操作。在重定向之前,您必须等待database.ref()。child(' users /' + user_info.id).push完成。

database.ref().child('users/' + user_info.id).push(obj).then(function() { window.location = "index.html" });