使用HTML更新Firebase中唯一随机生成的ID / KEY中的数据

时间:2019-02-03 08:27:00

标签: html firebase firebase-realtime-database

function updateFirebase(){
    const fb=firebase.database().ref()
    //get field values
    author = document.getElementById('uname').value
    user_email = document.getElementById('umail').value
    data =  {author, user_email}
    //update database
    fb.child('Article/').update(data);
   }
  </script>

我的代码有问题。我想更新名为“ Article”的表中的数据。 Article生成的项目具有唯一的键/ ID,并且每个键都有其自己的内容。可以说我希望能够编辑“作者”或更改“标题”,问题是它们每个都有一个我无法访问的随机生成的密钥/ ID。例如“ -LS39kReBHrKGqNj7h_”。我只能将数据保存在“文章”树中,但不能更改“作者”或“标题”。我该如何解决,以便可以更改那些属性?

Here is how my firebase looks like

1 个答案:

答案 0 :(得分:1)

这取决于您是否在更新之前在前端有记录引用(是否在尝试更新它之前就已经获取了记录引用)。

但是通常,您有两种选择

  1. 您可以将键引用存储为对象上的“ id”字段。 为此,首先创建记录时需要两步过程
email_verified_at

如果您在前端获取记录列表,然后又想更新其中一个记录,那就太好了。然后,您可以像这样构建引用路径

// Creates a new record in DB and returns it to you. Now you can get the "key"
const newRecord = firebase.database().ref('TABLE_NAME_REF').push();

newRecord.set({
  id: newRecord.key
  ...
});
  1. 您需要首先根据其字段查找元素。有了它,就可以立即对其进行更新。 为此,您可以简单地执行以下操作:
fb.child('Article/' + record.id ).update(data); // where record is the prefetched thing