如何在新的Firebase数据库引用(Recyclerview)中进行排序 [英] how to sort in the new Firebase database reference (Recyclerview)
问题描述
我正在从用户名结构中提取数据,我想按名称或用户名进行排序。新的firebase数据库引用是否可能?我一直在四处寻找,我找不到任何关于它的事情。
这是我的代码:
databaseReference = FirebaseDatabase.getInstance ).getReference()子( 用户)。
$ b @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);
$ b这里是我的firebase结构:
{
asdadafdsgsaasfsa:{
name:juanito,
username:cacadeperro22
$ bdasdsadadaf:{
name:cucu,
username:dsadadas
},
dsadasddsa: {
name:username,
username:pisad
},
dsdsada:{
name:name ,
用户名:用户名
},
qUYxycDlMwYZ6r2WSA1TAacbdPh1:{
email:elvis0288@hotmail.com,
name :Elvis De Abreu,
username:elvis0288
},
qadfdafa:{
name:Josue Caca,
用户名:chupapenes
},
x123:{
name:fsf,
username:dadfasfd
} ,
xxxxxx:{
name:123,
username:culo
}
}
谢谢!
解决方案编辑:走开了,回来完成答案。看到有人打我:)
在你的FirebaseRecyclerAdapter构造函数中传递一个QueryRef,而不是数据库引用。
pre $ databaseReference = FirebaseDatabase.getInstance()。getReference()。child(Users);
...
@Override
protected void onStart(){
super.onStart();
Query query = databaseReference.orderByChild(name); //或... 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);
}
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!
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);
}
这篇关于如何在新的Firebase数据库引用(Recyclerview)中进行排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!