J'essaie de faire persister un objet personnalisé en utilisant le code suivant :
DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference();
DatabaseReference curWorkoutExercisesRef = databaseReference.child("workouts")
.child(mCurrentWorkout.getId())
.child("workoutExercises");
WorkoutExercise we = new WorkoutExercise(exercise);
curWorkoutExercisesRef.push().setValue(we);
Voici mon objet :
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
// ...
}
Et à chaque fois, j'obtiens cette erreur - com.google.firebase.database.DatabaseException: Serializing Arrays is not supported, please use Lists instead
. Mes objets ne contiennent pas de tableaux et cette erreur est donc assez déroutante. J'ai trouvé un moyen de corriger cette erreur - tout fonctionne bien si j'ajoute la balise @Exclude
à l'annotation bodyParts
liste de mon Exercise
mais ce n'est évidemment pas ce que j'essaie de faire.
Il semble donc que Firebase soit incapable de faire persister les objets contenant des listes internes ? Existe-t-il des solutions de contournement simples ou des meilleures pratiques ? Merci !
P.S. J'utilise firebase-database:9.2.1