从android中获取firebase数据库的用户等级

时间:2018-01-06 13:51:45

标签: android json firebase firebase-realtime-database

我有一个实时的firebase数据库,用于存储用户列表,并以下列格式存储(Json)

{
"users" : {
"-L29HeOZCmYu9UGJLMQR" : {
  "name" : "John Doe",
  "phoneNumber" : "+555-1566",
  "points" : 21,
  "rank" : 10,
  "userId" : "-L29HeOZCmYu9UGJLMQR"
},
"-L2ASCuStoH7CTaqgBgG" : {
  "name" : "Jenna Rose",
  "phoneNumber" : "+555-3562",
  "points" : 96,
  "rank" : 0,
  "userId" : "-L2ASCuStoH7CTaqgBgG"
   },
....// A lot more users.
}

所以我的问题是,我如何根据"点"来获得用户的排名?变量?另外,我如何准备前10名或前100名等的名单。?

1 个答案:

答案 0 :(得分:1)

在没有加载所有用户的情况下,无法获得特定用户的排名。

但您可以按using Firebase's query mechanism to sort and filter data获得前N名用户。例如:

DatabaseReference ref = FirebaseDatabase.getInstance().getReference("users");
Query top10query = ref.orderByChild("points").limitToLast(10);
top10query.addChildEventListener(...

孩子们将按升序排列。您必须将它们还原到客户端,例如将每个后续子项添加到列表的 top