2017-02-01 2 views
1

Я хочу показать оценку каждого пользователя в отсортированном.Сортировка Оценка всех зарегистрированных данных пользователя в Firebase, Android

Моя структура базы данных в Firebase консоли выглядит, как показано ниже

enter image description here

Я создал две таблицы один Score и один Пользователь,

В Score таблице, я использую идентификатор пользователя, оценка GameA, оценка игры B и оценка игры C

Теперь я хочу показать показатель GameA так rted мудр, каждый пользователь может видеть отсортированные данные в ListView, так что он может знать, что сколько он позади от других ...

В Firebase, я попытался с Query, но не может быть в состоянии добиться успеха в сортировка,

Query queryRef = mDatabase.orderByChild("scores").limitToFirst(100); 
    queryRef.addValueEventListener(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 

      for (DataSnapshot postSnapshot: dataSnapshot.getChildren()) { 
       Score score=postSnapshot.getValue(Score.class); 
       Log.d("test"," values is " + score.getScoreOfGameA() + " " + score.getUserId()); 
      } 
     } 

     @Override 
     public void onCancelled(DatabaseError databaseError) { 

     } 
    }); 

с выше результата запроса будет приходит, но значение 0, нуль

это, как показано ниже

02-02 06:29:09.559 10791-10818/com.firebasedatabaselearn W/PersistentConnection: pc_0 - Using an unspecified index. Consider adding '".indexOn": "scores"' at/to your security and Firebase Database rules for better performance 
02-02 06:29:09.562 10791-10791/com.firebasedatabaselearn W/ClassMapper: No setter/field for oFAgix9TlUNS92R2VJaJbNYtH3z2 found on class com.firebasedatabaselearn.module.Score 
02-02 06:29:09.562 10791-10791/com.firebasedatabaselearn W/ClassMapper: No setter/field for FrJpw8SMzZYfbECuvhHvbxnbCmh2 found on class com.firebasedatabaselearn.module.Score 
02-02 06:29:09.562 10791-10791/com.firebasedatabaselearn D/test: values is 0 null 
02-02 06:29:09.562 10791-10791/com.firebasedatabaselearn W/ClassMapper: No setter/field for NnmawN5gMFVhwaGmZxXgUCPsDMb2 found on class com.firebasedatabaselearn.module.Score 
02-02 06:29:09.562 10791-10791/com.firebasedatabaselearn W/ClassMapper: No setter/field for oFAgix9TlUNS92R2VJaJbNYtH3z2 found on class com.firebasedatabaselearn.module.Score 
02-02 06:29:09.562 10791-10791/com.firebasedatabaselearn W/ClassMapper: No setter/field for RLEmo9Vyq8Rktwn6Cuz4d6vadml2 found on class com.firebasedatabaselearn.module.Score 
02-02 06:29:09.562 10791-10791/com.firebasedatabaselearn W/ClassMapper: No setter/field for FrJpw8SMzZYfbECuvhHvbxnbCmh2 found on class com.firebasedatabaselearn.module.Score 
02-02 06:29:09.562 10791-10791/com.firebasedatabaselearn D/test: values is 0 null 

может ли кто-нибудь предложить мне, как я могу добиться этого?

ответ

1

Наконец, после посещения этого Firebase orderByChild and equalTo() queries don't work я достиг, используя код

queryRef = mDatabase.child("scores").orderByChild("scoreOfGameA").limitToLast(100); 
     queryRef.addValueEventListener(new ValueEventListener() { 

      @Override 
      public void onDataChange(DataSnapshot dataSnapshot) { 
       for (DataSnapshot postSnapshot: dataSnapshot.getChildren()) { 
        Score score=postSnapshot.getValue(Score.class); 
        Log.d("test"," values is " + score.getScoreOfGameA()); 
       } 
      } 

      @Override 
      public void onCancelled(DatabaseError databaseError) { 

      } 
     }); 
+0

рад, что ты понял это. Метод orderByChild принимает параметр имени свойства/столбца. – TomerBu

+0

Спасибо большое @TomerBu, а что такое useByValue? –

+0

Вариант использования: если ваш ref имеет прямое значение: mDatabase.child («score»). Child («scoreOfGameA»). OrderByValue(); – TomerBu

Смежные вопросы