如何在新的Firebase数据库引用(Recyclerview)中进行排序 [英] how to sort in the new Firebase database reference (Recyclerview)

查看:168
本文介绍了如何在新的Firebase数据库引用(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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆