I am trying to persist a custom object using the following code:
DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference();
DatabaseReference curWorkoutExercisesRef = databaseReference.child("workouts")
.child(mCurrentWorkout.getId())
.child("workoutExercises");
WorkoutExercise we = new WorkoutExercise(exercise);
curWorkoutExercisesRef.push().setValue(we);
Here's my object:
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
// ...
}
And every time I am getting this error - com.google.firebase.database.DatabaseException: Serializing Arrays is not supported, please use Lists instead. My objects don't contain any arrays so this error looks quite confusing. I found a way to fix this error - everything works fine if I add the @Exclude annotation to the bodyParts list from my Exercise class but it is obviously not what I am trying to achieve.
So seems that Firebase is unable to persist objects containing inner lists? Are there any straightforward workarounds or best practices here? Thanks!
P.S. I am using firebase-database:9.2.1
firebase-database:9.2.1. Are you using a different version?List<BodyPart>to the database, what JSON do you end up with?