2017-02-14 2 views
0

Ich habe meine Bilder-URLs auf Firebase-Datenbank gespeichert, da ich hier gelesen habe, war es der Weg zu gehen.Hinzufügen der Firebase-Liste des Objekts von DataSnapshot zu Array

Jetzt muss ich die 5 Bildobjekte Form der Liste und legen Sie sie in ein Array für die spätere Verwendung.

Also füge ich ein SingleValueEvent zu meiner Referenz, die auf UserId Node ist und ein DataSnapshot-Objekt, das ich auf Null überprüfen.
Das Problem ist, dass, selbst wenn ich nur eine Liste von 5 Bildern in meiner Datenbank habe , wenn sie auf der DataSnapshot es fügt 19 Bildobjekte in die Array-Objekt iteriert ...

02-14 15:13:45.375 21952-21952/com.example I/EditProfileFragment:Picture Array : 19 

Was ist Ich vermisse hier?

Die Json wie folgt aussieht:

PicturesUrls { 
UserID { 

    randomID{ 
    pictureName : "Main Picture" 
    pictureUrl : "URL" 
    } 

    randomId 
    pictureName : "Second Picture" 
    pictureUrl : "URL" 

    randomId { 
    pictureName : "Third Picture" 
    pictureUrl : "URL" 
    } 
} 
} 

Hier ist mein Code:

ArrayList<Object> mPicturesArray = new ArrayList<>(); 
.... 
.... 

mPicturesUrlRef.addListenerForSingleValueEvent(new ValueEventListener() { 
      @Override 
      public void onDataChange(DataSnapshot dataSnapshot) { 
       if (dataSnapshot != null) { 
        addPicturesToArray(dataSnapshot); 

       } 
      } 

      @Override 
      public void onCancelled(DatabaseError databaseError) { 

      } 
     }); 




private void addPicturesToArray(DataSnapshot dataSnapshot) { 

    for (DataSnapshot child : dataSnapshot.getChildren()) { 
     Picture picture = child.getValue(Picture.class); 
     mPicturesArray.add(picture); 
     Log.i(LOG_TAG, "One Picture added : " + picture.getPictureName()); 
    } 
    Log.i(LOG_TAG, "Picture Array : " + mPicturesArray.size()); 
} 
+0

bitte teilen Sie Ihre Logcat –

+0

Logcat zeigt nichts, außer dass das Bild Array-Größe 19 –

+0

Es wird schwer zu sagen viel, ohne zu sehen, wo 'dataSnapshot' kommt. Und es wäre wahrscheinlich auch nützlich, den minimalen JSON (als Text bitte, kein Screenshot) zu sehen, der das Problem verursacht. Bitte teilen Sie den [minimalen, vollständigen Code, der das Problem reproduziert] (http://stackoverflow.com/help/mcve). –

Antwort

0

Hummm ....

Ok, so habe ich die Arraylist geändert zu einem HashMap und die Dinge funktionieren jetzt wie erwartet. Keine Ahnung warum aber ...

+0

HashMap ist der einzige Sammlungstyp, den Firebase unterstützt –

Verwandte Themen