如果孩子在Firebase中拥有动态密钥,如何查询最高值?

时间:2017-03-29 17:32:33

标签: android firebase firebase-realtime-database

我希望在排行榜中获得最高分。这是我的数据库:

Database

这是我的规则:

Rules

这是我的代码:

FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference newRef = database.getReference("tr/scores");
newRef.orderByChild("skor").limitToLast(3).addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            Gson gson = new Gson();
            String value = gson.toJson(dataSnapshot.getValue());
            Log.d("Debug",value);
        }
        @Override
        public void onCancelled(DatabaseError firebaseError) {
            Log.e("Debug","Error at firebase response.");
        }
    });

这会返回3个子节点,但不会被“skor”变量排序。我阅读了文档,但文档中的示例是:

{
  "scores": {
   "bruhathkayosaurus" : 55,
   "lambeosaurus" : 21,
   "linhenykus" : 80,
   "pterodactyl" : 93,
   "stegosaurus" : 5,
   "triceratops" : 22
  }
}

但是我的数据库为每个孩子都有动态键。有什么想法吗?

0 个答案:

没有答案