Fügen Sie @IgnoreExtraProperties zu Ihrer Klasse hinzu
%Vor%Ich versuche, ein benutzerdefiniertes Objekt mit dem folgenden Code zu erhalten:
%Vor%Hier ist mein Objekt:
%Vor% Und jedes Mal, wenn ich diesen Fehler bekomme - com.google.firebase.database.DatabaseException: Serializing Arrays is not supported, please use Lists instead
. Meine Objekte enthalten keine Arrays, daher sieht dieser Fehler ziemlich verwirrend aus. Ich habe einen Weg gefunden, diesen Fehler zu beheben - alles funktioniert gut, wenn ich die @Exclude
-Anmerkung der bodyParts
-Liste von meiner Exercise
-Klasse hinzufüge, aber es ist offensichtlich nicht das, was ich erreichen möchte.
Scheint, dass Firebase Objekte mit inneren Listen nicht beibehalten kann? Gibt es hier einfache Problemumgehungen oder Best Practices? Vielen Dank!
P.S. Ich verwende firebase-database:9.2.1
Ich habe es geschafft, den Grund für diesen Absturz zu finden. Ich habe die App auf einem anderen Gerät mit Android 5.x installiert und Firebase hat dort eine viel weniger verwirrende Ausnahme ausgelöst:
%Vor% Es scheint, dass Firebase ( ungleich Gson ) versucht, alle möglichen Getter zu serialisieren, obwohl sie keine direkte Verbindung mit globalen Variablen (Klassenmitglieder / Felder) haben, in meinem Fall einer meiner Objekte enthielten eine Methode, die Drawable
- getDrawable()
zurückgab. Offensichtlich weiß Firebase nicht, wie man zeichnbares in json umwandelt.
Interessanter Moment (wahrscheinlich ein Fehler im Firebase SDK): Auf meinem älteren Gerät mit Android 4.4.1 bekomme ich immer noch meine ursprüngliche Ausnahme im selben Projekt und in derselben Konfiguration:
%Vor%Falls dies anderen hilft, die den gleichen Fehler erhalten, bekam ich den gleichen Fehler und die Lösung endete für mich folgendermaßen:
Ändern:
%Vor%An:
%Vor% Wie @fraggjkee hervorhebt, versucht Firebase, Getter zu serialisieren, und das war das gleiche Problem hier mit Firebase, der versucht, das Ergebnis von .getText()
zu serialisieren.
Hoffe das hilft anderen!
Ich hatte ein ähnliches Problem, ich habe versucht, groovy anstelle von Java zu verwenden, ich denke, dass groovy andere Methoden für mich generiert. Ich habe meine Domain-Klasse von Pogo (src / main / groovy) in Pojo (src / main / java) konvertiert und jetzt funktioniert alles gut
Fügen Sie @Exclude zu den Funktionen hinzu, die der FB zu interpretieren versucht, wie diejenigen, die Drawable zurückgeben.
%Vor%Ich hatte ein ähnliches Problem, ich habe versucht, groovy anstelle von Java zu verwenden, ich denke, dass groovy andere Methoden für mich generiert. Ich habe meine Domain-Klasse von Pogo (src / main / groovy) in Pojo (src / main / java) konvertiert und jetzt funktioniert alles gut
Falls dies anderen hilft, die den gleichen Fehler erhalten, bekam ich den gleichen Fehler und die Lösung endete für mich folgendermaßen:
Ändern:
%Vor%An:
%Vor%Wie @fraggjkee hervorhebt, versucht Firebase, Getter zu serialisieren, und das war das gleiche Problem hier mit Firebase, der versucht, das Ergebnis von %code% zu serialisieren.
Hoffe das hilft anderen!
Ich versuche, ein benutzerdefiniertes Objekt mit dem folgenden Code zu erhalten:
%Vor%Hier ist mein Objekt:
%Vor%Und jedes Mal, wenn ich diesen Fehler bekomme - %code% . Meine Objekte enthalten keine Arrays, daher sieht dieser Fehler ziemlich verwirrend aus. Ich habe einen Weg gefunden, diesen Fehler zu beheben - alles funktioniert gut, wenn ich die %code% -Anmerkung der %code% -Liste von meiner %code% -Klasse hinzufüge, aber es ist offensichtlich nicht das, was ich erreichen möchte.
Scheint, dass Firebase Objekte mit inneren Listen nicht beibehalten kann? Gibt es hier einfache Problemumgehungen oder Best Practices? Vielen Dank!
P.S. Ich verwende %code%
Fügen Sie @Exclude zu den Funktionen hinzu, die der FB zu interpretieren versucht, wie diejenigen, die Drawable zurückgeben.
%Vor%Ich habe es geschafft, den Grund für diesen Absturz zu finden. Ich habe die App auf einem anderen Gerät mit Android 5.x installiert und Firebase hat dort eine viel weniger verwirrende Ausnahme ausgelöst:
%Vor%Es scheint, dass Firebase ( ungleich Gson ) versucht, alle möglichen Getter zu serialisieren, obwohl sie keine direkte Verbindung mit globalen Variablen (Klassenmitglieder / Felder) haben, in meinem Fall einer meiner Objekte enthielten eine Methode, die %code% - %code% zurückgab. Offensichtlich weiß Firebase nicht, wie man zeichnbares in json umwandelt.
Interessanter Moment (wahrscheinlich ein Fehler im Firebase SDK): Auf meinem älteren Gerät mit Android 4.4.1 bekomme ich immer noch meine ursprüngliche Ausnahme im selben Projekt und in derselben Konfiguration:
%Vor%Fügen Sie @IgnoreExtraProperties zu Ihrer Klasse hinzu
%Vor%Hier ist, wie das für mich gelöst wurde. Das Problem trat auf, als ich versuchte, ein int-Feld in der Datenbank zu aktualisieren. Ich habe Text aus dem Bearbeitungsfeld erhalten und vergessen, das in ein int umzuwandeln. Dies verursachte den Fehler. Versuchen Sie also, den Datentyp zu überprüfen, den Sie an die Datenbank senden, wenn dieses Problem auftritt.
Hier ist, wie das für mich gelöst wurde. Das Problem trat auf, als ich versuchte, ein int-Feld in der Datenbank zu aktualisieren. Ich habe Text aus dem Bearbeitungsfeld erhalten und vergessen, das in ein int umzuwandeln. Dies verursachte den Fehler. Versuchen Sie also, den Datentyp zu überprüfen, den Sie an die Datenbank senden, wenn dieses Problem auftritt.
Tags und Links java android firebase firebase-database