Я должен опубликовать вопрос, потому что моя проблема не решена.
, если я использую al oop и перебираю список, который я создал, с помощью интерфейса (метод readData) программы cra sh Я проверил журнал и обнаружил, что он возвращает только первый элемент. с другой стороны, размер списка правильный
вот мой код Примечание Я использую Fragment
FirebaseFirestore mDB2;
private ArrayList<UserLocation> LocationsList = new ArrayList<>();
mDB2;= FirebaseFirestore.getInstance();
oncreateview
readData(new FirestoreCallBack() {
@Override
public void onCallBack(List<UserLocation> userLocations) {
Log.d("test", userLocations.size() + " "); /// work
Log.d("test", userLocations.get(4).getUser().getUser_id() + " "); //// work
Log.d("test", userLocations.get(5).getUser().getUser_id() + " "); ///// work
for (int i=0;i<userLocations.size();i++)
{
Log.d("test",userLocations.get(i).getUser().getUser_id()); /// not working crash
}
}
});
void readData(FirestoreCallBack firestoreCallBack)
{
CollectionReference c = mDB.collection("user_locations");
c.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
for (DocumentSnapshot doc : task.getResult()) {
UserLocation updaed = doc.toObject(UserLocation.class);
LocationsList.add(updaed);
}
Log.d("size1", LocationsList.size() + " ");
firestoreCallBack.onCallBack(LocationsList);
}
});
}
interface FirestoreCallBack {
void onCallBack(List<UserLocation> userLocations);
}
Примечание : Есть другой код, но он не мешает этой части кода
Структура моей базы данных https://imgur.com/a/nS3Ghdj