2016-09-11 5 views
3

ich einen Knoten mit einer Liste von Benutzern Partituren in einer Firebase DB habe, würde Ich mag die Liste vom höchsten zum niedrigsten bestellen und zeige nur das Top-10-Scores:Android - Firebase, um von Wert

Meine Rangliste Knoten :

leader_board 
-$week_id 
    -$user_id: score 

Und mein Java-Code ist wie folgt:

Query leader_board_query = leader_board_reference.child(week_id).orderByValue().limitToLast(10); 

aus irgendeinem Grund, es zu höchsten immer Aufträge vom niedrigsten. Ich habe versucht mit limitToFirst(10) und nichts ändert sich, bitte helfen

+0

Aktualisierte Antwort, melden Sie bitte zurück, wenn es funktioniert (oder nicht funktioniert)! –

Antwort

1

ich dieses schmerzhafte Problem zu lösen geführt. Ich musste lediglich mein Recyclerview-Layout ein wenig ändern, indem ich dem Layout-Manager die folgenden Codezeilen hinzufügte.

LinearLayoutManager layout_manager = new LinearLayoutManager(getContext()); 
layout_manager.setReverseLayout(true); 
layout_manager.setStackFromEnd(true); 

Die Liste wurde in umgekehrter bestellt, die bei der Bestellung vom höchsten zum niedrigsten geführt wird.

3

orderByValue() wird immer aufsteigend sortiert.

Sie können limitToLast() verwenden, um nur den letzten Abschnitt der sortierten Artikel zu erhalten, dann müssen die Elemente programmgesteuert zurücksetzen.

Beispiel-Datensatz:

1, 3, 8, 9, 0, 5, 4, 7, 6, 2 

orderByValue().limitToFirst(3) zurückkehren sollte 0, 1, 2

orderByValue().limitToLast(3) sollte 7, 8, 9 zurückkehren, und dann zurückkehren Sie das Array 9, 8, 7 zu erhalten.

Hinweis: Das ist alles nicht getestet, bitte mit den Ergebnissen berichten;)

+0

Danke @Antoine, ich versuche es jetzt und melde mich zurück – spongyboss

Verwandte Themen