Ich versuche, ein benutzerdefiniertes Objekt mit dem folgenden Code zu beharren:com.google.firebase.database.DatabaseException: Arrays Serialisierung wird nicht unterstützt, verwenden Sie bitte Listen statt
DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference();
DatabaseReference curWorkoutExercisesRef = databaseReference.child("workouts")
.child(mCurrentWorkout.getId())
.child("workoutExercises");
WorkoutExercise we = new WorkoutExercise(exercise);
curWorkoutExercisesRef.push().setValue(we);
Hier ist mein Ziel:
public class WorkoutExercise {
private String id;
private Exercise exercise;
public WorkoutExercise() {}
// getters, setters, other methods
// ...
}
public class Exercise {
private String id;
private String title;
private List<BodyPart> bodyParts;
public Exercise() {}
// getters, setters, other methods
// ...
}
public class BodyPart {
private String id;
private String name;
public BodyPart() {}
// getters, setters, other methods
// ...
}
Und jedes Mal bekomme ich diesen Fehler - 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, um diesen Fehler zu beheben - alles funktioniert gut, wenn ich die @Exclude
Annotation zu der bodyParts
Liste von meiner Exercise
Klasse hinzufügen, aber es ist offensichtlich nicht das, was ich versuche zu erreichen.
Scheint, dass Firebase Objekte mit inneren Listen nicht beibehalten kann? Gibt es hier einfache Problemumgehungen oder Best Practices? Vielen Dank!
P.S. Ich benutze firebase-database:9.2.1
Ich kann die Ausnahme nicht reproduzieren, wenn ich mit 'Firebase-Datenbank: 9.2.1' arbeite. Verwenden Sie eine andere Version? –
@qbix aus Neugier: Wenn Sie eine 'List' in die Datenbank serialisieren, mit welcher JSON enden Sie? –
@FrankvanPuffelen: Die Liste wird als Array serialisiert. [JSON ist hier] (https://gist.github.com/Bob-Snyder/034685d998fddd8d1bcc3d52c93d1877) –