Я пытаюсь получить ссылки на документы из Firestore в цикле for (без итерации по подмножеству).Мне нужно дождаться окончания цикла, дождаться получения данных и, в случае успеха, отправить эти данные в Firestore.В настоящее время мой метод не ожидает получения данных, поскольку он асинхронный.
Вероятно, было бы неплохо создать метод, который возвращает задачу, а затем ожидать результата.Предложения?
ArrayList<String> documentPath = new ArrayList<>();
private void getDocumentRef() {
try {
for (String path : documentPath) {
db.document(path).get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
@Override
public void onComplete(@NonNull Task<DocumentSnapshot> task) {
if (task.isSuccessful() && task.getResult() != null) {
if (task.getResult().exists()) {
references.add(task.getResult().getReference());
}
}
}
});
}
} catch (Exception e) {
}
}