Javascript 如何在firebase中添加数据?

Javascript 如何在firebase中添加数据?,javascript,firebase,firebase-realtime-database,Javascript,Firebase,Firebase Realtime Database,嗯,我正在创建一个新闻源网站。每个用户都可以上传自己的事件。我试图在我的firebase用户数据库中创建一个部分,但我无法向参数发送变量 firebase.auth().createUserWithEmailAndPassword(email, password).then(function(){ var user = firebase.auth().currentUser; console.log(user); if (user) {

嗯,我正在创建一个新闻源网站。每个用户都可以上传自己的事件。我试图在我的firebase用户数据库中创建一个部分,但我无法向参数发送变量

      firebase.auth().createUserWithEmailAndPassword(email, password).then(function(){
      var user = firebase.auth().currentUser;
      console.log(user);
      if (user) {
      // User is signed in.
      user.updateProfile({displayName: document.getElementById("name").value});
      var user_id = user.id;
      var user_email = user.email;
      var user_display_name = user.displayName;
      //Saving info in the data base.

      var database = firebase.database();
      database.ref('users/' + user_id).set({
          displayName: user_display_name,
          id: user_id,
          email: user_email
        });


      window.location = "index.html"
    } else {
      alert("Something went wrong.");
    }
更新版本:

window.onload = function(){

var createButton = document.getElementById("createButton");
var signin_button = document.getElementById("signin_button");

createButton.onclick = function(){

var email = document.getElementById("email").value;
var password = document.getElementById("password").value;



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('usersss/' + 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.");
    }
})
.catch(function(error) {
  // Handle Errors here.
  var errorCode = error.code;
  var errorMessage = error.message;
  if (errorCode == 'auth/weak-password') {
    alert('The password is too weak.');
  } else if (errorCode == 'auth/email-already-in-use') {
    alert('The email is already in use.');
  } else if (errorCode == 'auth/invalid-email') {
    alert('The email is not valid.');
  }else if (errorCode == 'auth/operation-not-allowed') {
    alert('This operation is not allowed.');
  }else{
    alert(errorMessage);
  }
  console.log(error);
})
}


}

如果“用户/”+用户id中不存在任何内容,则需要使用“推送”而不是“设置”。例如:

database.ref().child('/users/' + user_id).push({
//your code
试试看

下面是一个用于将用户登录到firebase的操作生成器:

export var startLoginWithEmailAndPassword = (email, password) => {
  firebase.auth().signInWithEmailAndPassword(email, password).then((result) => {
    //handle success
    console.log('worked', result);
  }).catch((error) => {
    //handle error
    console.log('error', error);
  });
}

在上述情况下,“result”对象将包含用户详细信息。

您得到了什么错误?在.thenfunction中-添加如下参数结果:`firebase.auth.CreateUserWithEmail和PasswordEmail,password.thenfunctionresult{Firebase.set失败:第一个参数在属性user.undefined.id中包含未定义的内容请看以下文章:似乎我无法访问用户id…Firebase.set失败:第一个参数在属性user.undefined.idI中包含未定义的内容。我正在使用操作生成器redux编辑我的原始注释,我使用该操作生成器使用电子邮件和p登录assword.注意'result'参数-该对象将包含您要推送到firebase的数据。我认为这应该会有所帮助。如果没有意义,请告诉我。我想我现在就得到了。我要试试。太好了,让我知道它是如何运行的!我遇到的问题是,我不能在part.database的参数中使用变量.ref.child'users/'+user_info.id.set{displayName:user_info.display_name,id:user_info.id,email:user_info.email};
export var startLoginWithEmailAndPassword = (email, password) => {
  firebase.auth().signInWithEmailAndPassword(email, password).then((result) => {
    //handle success
    console.log('worked', result);
  }).catch((error) => {
    //handle error
    console.log('error', error);
  });
}