2016-07-25 2 views
1

Ich habe eine Methode, die unten soll das denn ist ein Arraylist von Ereignis Objekte zurückzukehren. Ich verwende die Methode der Zuordnung der Daten in Firebase zu einem POJO. Von der Fehlersuche ist das Mapping korrekt und ich füge die Objekte dem ArrayList jsonString hinzu, der Code stürzt beim Beenden der for-Schleife ab.com.google.firebase.database.DatabaseException: Erwartet eine Liste während Deserialisieren, bekam aber eine Klasse java.util.HashMap

Es gibt Fehler:
com.google.firebase.database.DatabaseException: Expected a List while deserializing, but got a class java.util.HashMap.

Ich habe nicht viel Code hinzugefügt, weil diese Methode unabhängig ist.

public ArrayList<Event> getJsonString(){ 
    final ArrayList<Event> jsonString = new ArrayList(); 

    mFirebaseDatabaseReference = database.getInstance().getReference(MESSAGES_CHILD); 
    //mFirebaseDatabaseReference.child(MESSAGES_CHILD); 
    mFirebaseDatabaseReference.addValueEventListener(new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
     for(DataSnapshot eventSnapshot:dataSnapshot.getChildren()){ 
     Event event = eventSnapshot.getValue(Event.class); 
     jsonString.add(event); 
     } 
    } 

    @Override 
    public void onCancelled(DatabaseError databaseError) { 

    } 
    }); 

    return jsonString; 
} 

Der Stacktrace:

07-25 21:21:23.178 3037-3079/com.firstintel.zimnights E/DynamiteModule: Failed to load module descriptor class: Didn't find class "com.google.android.gms.dynamite.descriptors.com.google.firebase.auth.ModuleDescriptor" on path: DexPathList[[zip file "/data/app/com.firstintel.zimnights-1/base.apk"],nativeLibraryDirectories=[/data/app/com.firstintel.zimnights-1/lib/x86_64, /vendor/lib64, /system/lib64]] 
07-25 21:21:23.191 3037-3079/com.firstintel.zimnights E/DynamiteModule: Failed to load module descriptor class: Didn't find class "com.google.android.gms.dynamite.descriptors.com.google.firebase.auth.ModuleDescriptor" on path: DexPathList[[zip file "/data/app/com.firstintel.zimnights-1/base.apk"],nativeLibraryDirectories=[/data/app/com.firstintel.zimnights-1/lib/x86_64, /vendor/lib64, /system/lib64]] 
07-25 21:21:27.313 3037-3095/com.firstintel.zimnights E/Surface: getSlotFromBufferLocked: unknown buffer: 0x7f758c234b90 
07-25 21:21:27.415 3037-3095/com.firstintel.zimnights E/Surface: getSlotFromBufferLocked: unknown buffer: 0x7f758c235530 
07-25 21:21:28.228 3037-3037/com.firstintel.zimnights E/AndroidRuntime: FATAL EXCEPTION: main 
                     Process: com.firstintel.zimnights, PID: 3037 
                     com.google.firebase.database.DatabaseException: Expected a List while deserializing, but got a class java.util.HashMap 
                      at com.google.android.gms.internal.zzaix.zza(Unknown Source) 
                      at com.google.android.gms.internal.zzaix.zza(Unknown Source) 
                      at com.google.android.gms.internal.zzaix.zza(Unknown Source) 
                      at com.google.firebase.database.DataSnapshot.getValue(Unknown Source) 
                      at com.firstintel.zimnights.EventFragment$1.onDataChange(EventFragment.java:146) 
                      at com.google.android.gms.internal.zzafp.zza(Unknown Source) 
                      at com.google.android.gms.internal.zzagp.zzSu(Unknown Source) 
                      at com.google.android.gms.internal.zzags$1.run(Unknown Source) 
                      at android.os.Handler.handleCallback(Handler.java:739) 
                      at android.os.Handler.dispatchMessage(Handler.java:95) 
                      at android.os.Looper.loop(Looper.java:148) 
                      at android.app.ActivityThread.main(ActivityThread.java:5417) 
                      at java.lang.reflect.Method.invoke(Native Method) 
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
+0

Sie müssen die vollständige Ablaufverfolgung für den Ausnahme-Stack anzeigen und die Zeile in Ihrem Code angeben, die zum Auslösen der Ausnahme führt. [bearbeiten] Sie Ihren Beitrag und fügen Sie die notwendigen Informationen hinzu. Außerdem macht dieser Code nichts wirklich. Sie haben einen Listener festgelegt, aber keine anderen Methoden aufgerufen, sodass Sie eine leere Liste zurückgeben. –

+0

Noted thanks Ich habe den Stacktrace hinzugefügt –

+0

Sie sollten auch den Code für Ihre POJO 'Event' post. –

Antwort

-2

Managed eine Abhilfe zu tun, anstatt die Arraylist zurückzukehren, ich nur der Adapter in meinem getJsonString() aufgerufen, die ich dann in der genannt OnCreate(). Voila arbeitet perfekt, um herauszufinden, welches Designmuster das ist, weiß es jemand?

+1

Geben Sie die Antwort ein, bevor Sie sie richtig markieren. –

-1

behoben viele Fälle durch die Überprüfung der Variablennamen und ihre Reihenfolge auch mit ArrayList in der Klasse, aber gestapelt ähnlichen Fall der Unterschied ist, hat man Array hat Schlüssel Wertliste geschoben.

Verwandte Themen