Привет Аллен, ты вызываешь initDatabaseData (); в методе oncreate (), который выполняет сетевой запрос и получает данные. Таким образом, получение данных занимает примерно 2-3 секунды. Но через 2-3 секунды ваш код ниже initDatabaseData () будет вызван
LinearLayoutManager linearLayoutManager
= new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false);
mRecyclerView.setLayoutManager(linearLayoutManager);
mRecyclerView.setHasFixedSize(true);
mWorkoutAdapter = new WorkoutAdapter(this);
mRecyclerView.setAdapter(mWorkoutAdapter);
Log.i("LOG", "workout list size HERE: " + mWorkoutList.size());
mWorkoutAdapter.setWorkoutData(mWorkoutList);
Так что до тех пор, пока данные не поступят, размер списка будет отображаться 0, а затем после того, как вы получите данные в списке onComplete (), размер будет увеличение(). Поэтому в основном добавьте строку mWorkoutAdapter.notifyDatasetChanged (); здесь: -
if(task.isSuccessful()){
for (QueryDocumentSnapshot document : task.getResult()){
OtherWorkout workout = document.toObject(OtherWorkout.class);
mWorkoutList.add(workout);
Log.i("LOG", "workout list size: " + mWorkoutList.size());
}mWorkoutAdapter.notifyDatasetChanged();
}
Это обновит sh ваш адаптер с вашими новыми значениями.