how to sort in the new Firebase database reference (Recyclerview)

♀尐吖头ヾ 提交于 2019-12-23 02:48:05

问题


I am pulling data from a username structure and I would like to sort by name or username. Is this possible with the new firebase database reference. I have been looking around and I cannot find anything about it.

here is my code:

databaseReference = FirebaseDatabase.getInstance().getReference().child("Users");

}

@Override
protected void onStart() {
    super.onStart();

    FirebaseRecyclerAdapter<addFriends,addFriendsViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<addFriends, addFriendsViewHolder>(
            addFriends.class,
            R.layout.addfriends_row,
            addFriendsViewHolder.class,
            databaseReference
    ) {
        @Override
        protected void populateViewHolder(addFriendsViewHolder viewHolder, addFriends model, int position) {
            viewHolder.setName(model.getName());
            viewHolder.setUsername(model.getUsername());
        }
    };
    addfriendsRecyclerView.setAdapter(firebaseRecyclerAdapter);
}

here is my structure in firebase:

{
  "asdadafdsgsaasfsa" : {
    "name" : "juanito",
    "username" : "cacadeperro22"
  },
  "dasdsadadaf" : {
    "name" : "cucu",
    "username" : "dsadadas"
  },
  "dsadasddsa" : {
    "name" : "username",
    "username" : "pisad"
  },
  "dsdsada" : {
    "name" : "name",
    "username" : "username"
  },
  "qUYxycDlMwYZ6r2WSA1TAacbdPh1" : {
    "email" : "elvis0288@hotmail.com",
    "name" : "Elvis De Abreu",
    "username" : "elvis0288"
  },
  "qadfdafa" : {
    "name" : "Josue Caca",
    "username" : "chupapenes"
  },
  "x123" : {
    "name" : "fsf",
    "username" : "dadfasfd"
  },
  "xxxxxx" : {
    "name" : "123",
    "username" : "culo"
  }
}

Thanks!


回答1:


EDIT: Had stepped away and came back to finish answer. Saw someone beat me to it :) Pass in a QueryRef in your FirebaseRecyclerAdapter constructor instead of the database reference.

databaseReference = FirebaseDatabase.getInstance().getReference().child("Users");

// ...

@Override
protected void onStart() {
    super.onStart();

Query query = databaseReference.orderByChild("name"); // or ...orderByChild("username");
FirebaseRecyclerAdapter<addFriends,addFriendsViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<addFriends, addFriendsViewHolder>(
        addFriends.class,
        R.layout.addfriends_row,
        addFriendsViewHolder.class,
        query
) {
    @Override
    protected void populateViewHolder(addFriendsViewHolder viewHolder, addFriends model, int position) {
        viewHolder.setName(model.getName());
        viewHolder.setUsername(model.getUsername());
    }
};
addfriendsRecyclerView.setAdapter(firebaseRecyclerAdapter);
}


来源:https://stackoverflow.com/questions/40314486/how-to-sort-in-the-new-firebase-database-reference-recyclerview

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!