2017-06-20 2 views
0

Ich möchte diese ReihenfolgeByValue abfragen es ist immer null null Aber wenn ich .orderByValue Daten load normal entfernen. Bitte helfenAnfrage Firebase-Datenbank wurde null

DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference(); 
    mDatabase.child("newfeed").child(FirebaseRef.mAuth.getCurrentUser().getUid()).orderByValue().limitToFirst(10).addListenerForSingleValueEvent(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 
      if(dataSnapshot.exists()){ 
       for (DataSnapshot data : dataSnapshot.getChildren()) { 
        lastRating = data.getValue(Double.class); 
        loadData(data.getKey()); 
        Log.d("Key ", data.getKey()); 
       } 
      } 
      else{ 
       mProgressBar.setVisibility(RecyclerView.GONE); 
       mProgressBarTop.setVisibility(RecyclerView.GONE); 

      } 
     } 
     @Override public void onCancelled(DatabaseError databaseError) { 
      mProgressBar.setVisibility(RecyclerView.GONE); 
     } 
    }); 
} 

Hier ist ein Beispiel für meine JSON.

"newfeed" : { 
"7gE2qiqoblSHDHubiEW0IzrhzIQ2" : { 
    "-Kn090eIxMH338xIwA8J" : 69259.23018812927, 
    "-Kn092jf25h2Qdmk--RX" : 69268.71984827428, 
    "-Kn093LPOBCCE1-Ygx6t" : 69270.82899176712, 
    "-Kn093P2PE2rIml4XyKI" : 121518.05765189118, 
    "-Kn09lD0cGUhRQPbvJtS" : 69394.93008559482, 
    "-Kn0BYI-7IQzkCmBH8gN" : 69892.8262113143, 
    "-Kn4UkNCe1rhpiJ_Rrew" : 3133576.6418433865 
} 
+0

Sie haben ein Bild des JSON-Baums in Ihre Frage eingefügt. Bitte ersetzen Sie dies durch den tatsächlichen JSON als Text, den Sie einfach erhalten, wenn Sie auf den Link JSON exportieren in [Ihrer Firebase-Datenbankkonsole] klicken (https://console.firebase.google.com/project/_/database/data/). . Da der JSON als Text durchsuchbar ist, können wir ihn einfach verwenden, um mit Ihren tatsächlichen Daten zu testen und sie in unserer Antwort zu verwenden, und im Allgemeinen ist dies nur eine gute Sache. –

+0

@FrankvanPuffelen Sorry dafür, gerade hinzugefügt. – LIPONEF

+0

Macht es einen Unterschied, wenn Sie 'addValueEventListener' verwenden? Sehen Sie https://StackOverflow.com/questions/34486417/firebase-offline-capabilities-and-addlistenerforsinglevalueevent für einige SubTelties um, wie 'addListenerForSingleValueEvent' sich verhält (obwohl nicht sicher, warum dies nur der Fall wäre, wenn' orderByValue() 'verwendet wird) . Wie dieser Beitrag beschreibt, müssen Sie wahrscheinlich 'keepSynced (true)' 'aufrufen, wenn Sie' addListenerForSingleValueEvent' verwenden. –

Antwort

0

Ich bin nicht wirklich sicher, was Sie bekommen, weshalb ich diesen Code selbst lief:

ref.orderByValue().limitToFirst(10).addListenerForSingleValueEvent(new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
     for (DataSnapshot data : dataSnapshot.getChildren()) { 
      Log.d("Key ", data.getKey()+": "+data.getValue()); 
     } 
    } 
    @Override public void onCancelled(DatabaseError databaseError) { 
     throw databaseError.toException(); 
    } 
}); 

Er druckt:

D/Key: -Kn090eIxMH338xIwA8J : 69259,23018812927

D/Key: -Kn092jf25h2Qdmk - RX: 69268,71984827428

D/Key: -Kn093LPOBCCE1-Ygx6t: 69270,82899176712

D/Key: -Kn09lD0cGUhRQPbvJtS: 69394,93008559482

D/Key: -Kn0BYI-7IQzkCmBH8gN: 69892,8262113143

D/Key: -Kn093P2PE2rIml4XyKI: 121518,05765189118

D/Key: -Kn4UkNCe1rhpiJ_Rrew: 3133576,6418433865

Von einem schnellen Scan, der für mich wie die richtige Reihenfolge aussieht.

+0

Danke @Frank, vielleicht ist es mein Verbindungsproblem. – LIPONEF

+0

Gut zu hören, dass du es gelöst hast. –

Verwandte Themen