android - 如何在新的 Firebase 数据库引用 (Recyclerview) 中排序

标签 android firebase android-recyclerview firebase-realtime-database

我正在从用户名结构中提取数据,我想按名称或用户名排序。这可能与新的 firebase 数据库引用有关。我一直在环顾四周,但找不到任何相关信息。

这是我的代码:

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);
}

这是我在 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"
  }
}

谢谢!

最佳答案

编辑:离开并回来完成回答。看到有人打败了我:) 在 FirebaseRecyclerAdapter 构造函数中传入 QueryRef 而不是数据库引用。

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);
}

关于android - 如何在新的 Firebase 数据库引用 (Recyclerview) 中排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40314486/

相关文章:

android - 使用 FirestoreRecyclerAdapter 的 Firestore 分页 (Android)

android - 更改 RecyclerView 项目的项目背景

android - 滚动后 RecyclerView 中的无限动画停止

android - 为什么我的位置不断变化,是我的代码不正确吗?

android - 如何在后台运行计时器?

java - 显示每帧变化的文本(如乐谱)

android - NMEAListener 不工作?

node.js - 如何检查字符串是否是有效的 FCM token ?

firebase - 升级 Firebase : "Unable to load your database"

javascript - Firestore云函数: Getting "ReferenceError: firebase is not defined"