检索多个firebase对象

时间:2017-02-18 01:07:05

标签: javascript jquery firebase firebase-realtime-database

所以我正在开发一个网络应用程序。基本上我已经得到了以下代码,但是如何在单击删除按钮时删除它提取的每个员工?我还可以使用如何在删除子项时更新列表。例如,现在,如果我添加一个子项,表会自动使用新子项更新它,而不刷新页面。

var rootRef = firebase.database().ref().child("Balkar/Employees");
rootRef.on('child_added', snap => {
  var id = snap.child("ID").val();
  var name = snap.child("Name").val();
  var email = snap.child("Email").val();

  $("#table_body").append("<tr><td>" + id + "</td><td>" + name + "</td> <td>" + email +
                          "</td><td><button>Remove</button></td></tr>");
});

<h1>All Employees</h1>
    <table>
        <tr>
          <th>Employee ID</th>
          <th>Name</th>
          <th>Email</th>
          <th>Remove</th>
        </tr>
      <tbody id="table_body"></tbody>
    </table>

编辑:

var rootRef = firebase.database().ref().child("Balkar/Employees");

rootRef.on('child_added', snap => {
  var id = snap.child("ID").val();
  var key = snap.key;
  var name = snap.child("Name").val();
  var email = snap.child("Email").val();
  var btn = "<button id='removeEmployee' class='mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect mdl-button--accent'>Remove</button>";

  $("#table_body").append("<tr id='"+key+"'><td>" + id + "</td><td>" + name + "</td> <td>" + email +
                          "</td><td><button>" + btn + "</button></td></tr>");

  $("#removeEmployee").click(
    function(){
      rootRef.on('child_removed', snap => {
        var key = snap.key;
        $('#'+key).remove();
      });
    }
  );

});

2 个答案:

答案 0 :(得分:0)

要在删除项目时更新列表,请收听child_removed个事件,并通过找到该项目:

rootRef.on('child_added', snap => {
  var id = snap.child("ID").val();
  var key = snap.key;
  var name = snap.child("Name").val();
  var email = snap.child("Email").val();

  $("#table_body").append("<tr id='"+key+"'><td>" + id + "</td><td>" + name + "</td> <td>" + email +
                          "</td><td><button>Remove</button></td></tr>");
  });
});
rootRef.on('child_removed', snap => {
  var key = snap.key;
  $('#'+key).remove();
});

答案 1 :(得分:0)

首先,您要创建具有相同ID的多个删除按钮。情况应该不是这样。其次,您需要将密钥与每个按钮相关联,以便当用户单击其中一个按钮时,您知道要删除哪个项目。以下代码应该有所帮助。

  while( $row = mysqli_fetch_assoc( $result ) ){

参考:https://firebase.google.com/docs/reference/js/firebase.database.Reference#remove