Android Firebase,针对Recyclerview的服务器端过滤

Android Firebase,针对Recyclerview的服务器端过滤,android,firebase,firebase-realtime-database,firebaseui,Android,Firebase,Firebase Realtime Database,Firebaseui,以下是我的firebase数据结构 { "ticketing" : { "1476639649079-mahto" : { "agentId" : 0, "agent_status" : "1_Dispatched", "approverId" : 0, "contractorId" : 0, "dateTime" : "16-10-2016 13:40 PM", "priority" : "MEDIUM",

以下是我的firebase数据结构

{
  "ticketing" : {
    "1476639649079-mahto" : {
      "agentId" : 0,
      "agent_status" : "1_Dispatched",
      "approverId" : 0,
      "contractorId" : 0,
      "dateTime" : "16-10-2016 13:40 PM",
      "priority" : "MEDIUM",
      "requester" : {
        "issue" : "issue 3",
        "location" : "location 3",
        "priority" : "Medium",
        "shop" : "shop 3",
        "site" : "site 3",
        "userInfo" : {
          "email" : "m@gmail.com",
          "firstname" : "mahto",
          "isLoggedin" : true,
          "lastname" : "pancha",
          "loggedin" : true,
          "number" : "123123123",
          "password" : "q",
          "role" : "fieldagent",
          "userid" : "2",
          "username" : "q"
        }
      },
      "requesterId" : 2,
      "status" : "Incoming",
      "ticketNumber" : "1476639649079-mahto"
    },
    "1476741838857-mahto" : {
      "agentId" : 1,
      "agent_status" : "1_Incoming",
      "approverId" : 0,
      "contractorId" : 0,
      "dateTime" : "17-10-2016 18:03 PM",
      "priority" : "HIGH",
      "requester" : {
        "issue" : "Description 3",
        "location" : "Location 3",
        "priority" : "HIGH",
        "shop" : "shop 3",
        "site" : "site 3",
        "userInfo" : {
          "email" : "m@gmail.com",
          "firstname" : "mahto",
          "isLoggedin" : true,
          "lastname" : "pancha",
          "loggedin" : true,
          "number" : "123123123",
          "password" : "q",
          "role" : "fieldagent",
          "userid" : "2",
          "username" : "q"
        }
      },
      "requesterId" : 2,
      "status" : "Incoming",
      "ticketNumber" : "1476741838857-mahto"
    }
  }
}
数据库引用

mDatabase = FirebaseDatabase.getInstance().getReference().child("ticketing");
        mDatabase.orderByChild("agent_status").equalTo("1_Incoming");
并连接到recyclerview适配器

 mAdapter = new FirebaseRecyclerAdapter<Ticket, AgentTicketHolder>(Ticket.class, R.layout.agent_ticket_cardview, AgentTicketHolder.class, mDatabase) { .. }
mAdapter=new FirebaseRecyclerAdapter(Ticket.class,R.layout.agent\u Ticket\u cardview,AgentTicketHolder.class,mDatabase){..}
我的预期结果是,我将只得到一个节点,即1476741838857 mahto,其代理状态值等于1\u Incoming

但是我在recylerview中得到了两个节点


调用过滤方法时,Firebase SDK会为结果查询返回一个新对象。因此,您需要捕获对该对象的引用并将其传递到适配器:

mDatabase = FirebaseDatabase.getInstance().getReference().child("ticketing");

Query query = mDatabase.orderByChild("agent_status").equalTo("1_Incoming");

mAdapter = new FirebaseRecyclerAdapter<Ticket, AgentTicketHolder>
    (Ticket.class, R.layout.agent_ticket_cardview, AgentTicketHolder.class, query) { .. }
mDatabase=FirebaseDatabase.getInstance().getReference().child(“票务”);
Query Query=mDatabase.orderByChild(“代理_状态”).equalTo(“1_传入”);
mAdapter=新的FirebaseRecyclerAdapter
(Ticket.class,R.layout.agent_Ticket_cardwiew,AgentTicketHolder.class,query){..}

发布EventListener在问题中,检查EventListener是否已添加到数据库引用或查询中