Javascript 数据未添加到数据库中的现有节点

Javascript 数据未添加到数据库中的现有节点,javascript,firebase,web,firebase-realtime-database,firebase-authentication,Javascript,Firebase,Web,Firebase Realtime Database,Firebase Authentication,我一直试图在没有任何运气的情况下向数据库添加数据。 在我的代码中,我在单击时制作了一个按钮,它会将数据添加到我的用户数据库中,但不会将数据添加到用户中,但它只是将数据添加到外部,如下所示: 是不是因为在使用createUserWithEmailAndPassword()函数时无法添加数据 有人能告诉我怎么做吗 btn.addEventListener("click", function() { firebase.auth().onAuthStateChanged(function(u

我一直试图在没有任何运气的情况下向数据库添加数据。 在我的代码中,我在单击时制作了一个按钮,它会将数据添加到我的用户数据库中,但不会将数据添加到用户中,但它只是将数据添加到外部,如下所示:

是不是因为在使用createUserWithEmailAndPassword()函数时无法添加数据

有人能告诉我怎么做吗

btn.addEventListener("click", function()
{

    firebase.auth().onAuthStateChanged(function(user)
    { 
        if (user)
        {
            var massage = inputText.value;
            var ref = database.ref("Users");

            var data = {
                display: massage
            }
            ref.push(data);
        }
    });
});
如果您想在Firebase数据库中插入一个新条目,那么您的代码似乎是正确的(就像您的屏幕截图所示)

但是,如果你真的想注册一个新用户,那么你应该使用
firebase.auth().createUserWithEmailAndPassword()


最后,如果确实要更新现有节点,请参阅上面的Frank响应;-)

无论何时调用
push()
Firebase都会生成一个新的唯一ID。因此,要将新数据添加到现有节点,不应调用push。相反,您需要为该用户找到对现有节点的引用

最简单(也是最常见)的方法是将用户数据存储在每个用户的UID下

Users
  kHD...NoS
    username: "bob"
还请注意,没有理由将这种类型的
onAuthStateChange
侦听器放在按钮单击处理程序中。只需从顶级JavaScript附加它,当用户登录时或当其身份验证状态以任何其他方式更改时,它就会触发

或者,如果代码确实必须运行以响应按钮的单击,则auth状态侦听器没有实际用途,您可以只检查
firebase.auth().currentUser

btn.addEventListener("click", function()
{
    if (firebase.auth().currentUser)
    {
        var message = inputText.value;
        var ref = database.ref("Users");

        var data = {
            display: massage
        }
        ref.child(firebase.auth().currentUser.uid).update(data);
    }
}

试试这个。您可以将“更新”更改为“设置”。就你的情况来说

demo.update(“用户/KIK…fuA”、“显示”、“我的消息”)


你是说我首先需要在我的用户中创建“display”并更新它。因为你不能只向用户列表中添加数据?不,不是这样的。但每次调用
push()
,都会创建一个新的子对象。如果要更新现有子级,请不要调用
push()
//REVEALED METHOD TO ADD NODES WITH DATA TO REALTIME DATABASE
//eg, demo.update('mynode','myKey','myValue')
var demo = (function() {
  var pub = {};
  pub.update = function (node,key,value){
    var ref = firebase.database().ref('/');
    var obj = {};
    obj[key] = value;
    ref.child(node).update(obj)
    .then(function() {
      console.log('Update Ran Successfully');
    });       
  }
  //API
  return pub;
}());