2017-02-20 2 views
1

Ich bin nicht in der Lage, um zu bestellen mit orderByChild auf einem Datumsfeld führen (Zeitstempel)Firebase android Bestellung

Hier wird die Struktur der Daten:

enter image description here

Und der Code:

DatabaseReference mMessagesRef = FirebaseDatabase.getInstance().getReference().child("messages") 
       .child(mConversationId).getRef() 
       .orderByChild("date").getRef(); 
     mMessagesRef.addListenerForSingleValueEvent(new ValueEventListener() { 
      @Override 
      public void onDataChange(DataSnapshot dataSnapshot) { 

       for(DataSnapshot data: dataSnapshot.getChildren()){ 

Die Abfrage hat den Wert zurückgegeben, aber nicht nach Datum sortiert, es wird mit dem Schlüssel zurückgegeben.

Antwort

4
Try this: 
DatabaseReference mMessagesRef=FirebaseDatabase.getInstance().getReference(); 
Query queryRef = mMessagesRef.child("messages").orderByChild("date"); 
queryRef.addListenerForSingleValueEvent(new ValueEventListener() { 
      @Override 
      public void onDataChange(DataSnapshot dataSnapshot) { 

       for(DataSnapshot data: dataSnapshot.getChildren()){