This is still unclear how to populate FirebaseRecyclerAdapter with custom query.
Define a reference. Here: DatabaseReference ref = mDatabase.getReference().child("users");
Send it to adapter initAdapter(ref);
Define query and set listener. Is it right?
mAdapter = new FirebaseRecyclerAdapter<User, UserHolder>(User.class, R.layout.user_row_layout, UserHolder.class, ref) {
@Override
protected void populateViewHolder(final UserHolder viewHolder, final User model, int position) {
Query query = ref.orderByChild("group").equalTo(uid);
query.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
viewHolder.setName(model.getName());
viewHolder.setStatus(getStatus(model.getStatus()));
}
// ...
};
Still showing all data from users. Need just to filter based on uid. Any clues?
For those who might have tried to make things over-complicated as me, or working at night, here is solution:
mAdapter = new FirebaseRecyclerAdapter<User, UserHolder>(
User.class,
R.layout.user_row_layout,
UserHolder.class,
ref.orderByChild("group").equalTo(uid)
) {
@Override
protected void populateViewHolder(final UserHolder viewHolder, final User model, int position) {
viewHolder.setName(model.getName());
viewHolder.setStatus(getStatus(model.getStatus()));
}
// ...
};
Chao!