使用JavaScript筛选Firebase列表中status ='pending'的数据

时间:2019-03-23 06:36:06

标签: javascript html5 firebase

我正在网站上创建管理面板,并在后端使用Firebase作为数据库。我能够显示列表,其中列表接受状态的onclick更改为``已接受'',但问题是当状态变为接受状态时那么展示广告中的列表应获得过滤条件,并仅显示待处理列表

pl.js

var firebaseheadingRef = firebase.database().ref().child("user");
function accept(userId) {
  var nodeRef = firebase.database().ref("/user/" + userId + "/listing/status");
  return nodeRef.set('accept');
} 

function reject(userId) {
  var nodeRef = firebase.database().ref("/user/" + userId + "/listing/status");
  return nodeRef.set('reject');
} 

firebaseheadingRef.on('child_added',datasnapshot=>{

   var title= datasnapshot.child("listing").child("title").val();
   var userid= datasnapshot.child("username").val();
   var type= datasnapshot.child("listing").child("title").val();
   var publisheddate= datasnapshot.child("listing").child("publish").val();
   var expirydate= datasnapshot.child("listing").child("expire").val();
   $("#tablebody").append("<tr><td>"+title+"</td><td>"+userid+"</td><td>"+type+"</td><td>"+publisheddate+"</td><td><button type=button id=accept onclick=accept('" + datasnapshot.key + "')>Accept</button><button type=button onclick=reject('" + datasnapshot.key + "')>Reject</button></td></tr>");

  });

应显示状态=未决的过滤器列表

数据库

enter image description here

1 个答案:

答案 0 :(得分:0)

您可以将orderByChild方法和equalTo方法一起使用,以按状态属性对子级进行排序

firebaseheadingRef.orderByChild("/listing/status").equalTo("pending")
.on('child_added',datasnapshot=> 
{
    //Enter your code here
});

尝试更改行

var firebaseheadingRef = firebase.database().ref().child("user");

var firebaseheadingRef = firebase.database().ref('/user');