2016-10-21 7 views
1

Ниже моя firebase структура данныхAndroid Firebase, на стороне сервера фильтрации для Recyclerview

{ 
    "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" : "[email protected]", 
      "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" : "[email protected]", 
      "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" 
    } 
    } 
} 

refrence Database

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) { .. } 

Мой ожидаемый результат в том, что я получаю только один узел, то есть 1476741838857-mahto, у которого есть значение agent_status, равное 1_Incoming.

Но я получаю оба узла в моем recylerview.

enter image description here

+0

сообщение вы EventListener в вашем вопросе, проверьте ваш EventListener ли добавляется ссылки базы данных или запроса –

ответ

1

При вызове методов фильтрации, то 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) { .. } 

 Смежные вопросы

  • Нет связанных вопросов^_^