Как я понимаю, у вас есть два типа списков, userModelArrayList
, который имеет тип UserModel, и likeModelArrayList
, который имеет тип LikeModel. Чтобы иметь возможность добавлять каждый объект в соответствующий ему тип списка, вы должны создать списки объектов Task типа UserModel и LikeModel. Поэтому, пожалуйста, измените следующие строки кода:
List<Task<DocumentSnapshot>> fetchUserTasks = new ArrayList<>();
List<Task<DocumentSnapshot>> fetchLikeTasks = new ArrayList<>();
на
List<Task<UserModel>> fetchUserTasks = new ArrayList<>();
List<Task<LikeModel>> fetchLikeTasks = new ArrayList<>();
Поэтому вместо добавления объектов DocumentSnapshot
добавьте фактические объекты. Так что используйте toObject()
раньше. При этом вы можете проверить каждый тип объекта с помощью оператора instanceof
, как в следующих строках кода:
Tasks.whenAllSuccess(combineUserTasks, combineLikeTask).addOnSuccessListener(new OnSuccessListener<List<Object>>() {
@Override
public void onSuccess(List<Object> objects) {
for (Object object : objects) {
if (object instanceof UserModel) {
userModelArrayList.add(userModel);
} else if (object instanceof LikeModel) {
likeModelArrayList.add(likeModel);
}
}
}
});
Теперь у вас будет каждый список, заполненный соответствующим типом объекта.