Как обновлять элемент ListView после каждой асинхронной задачи?
У меня есть 2 коллекции на базе Firebase, к которым необходимо получить доступ, и, пожалуйста, если есть другой способ, пожалуйста, сообщите, так как я новичок в Firebase и Flutter.
Мой users
имеет коллекцию внутри, называемую favorites
с полем userID
(идентичным идентификатору документа), и я загружаю ListView со всеми данными пользователей, НО только с теми, которые соответствуют этим идентификаторам (чтобы избежать например, загрузка 1000 пользователей без причины = $$$).
По моему коду и тестам в окне «Выполнить» я получаю значение для каждого пользователя, но мой ListView в приложении отображается пустым. Я попытался установить сетсет, но приложение обновляется без остановки.
Я попытался создать отдельную функцию, но просто не могу получить ее, возвращая список снимков документа.
Спасибо
FutureBuilder(
future: Firestore.instance.collection('users').document(id).collection('favorites').getDocuments(),
builder: (context, snapshot) {
if (snapshot.hasData) {
List<DocumentSnapshot> userDocs = [];
snapshot.data.documents.forEach((doc) async {
await Firestore.instance.collection('users').document(doc.documentID).get().then((user) {
userDocs.add(user);
});
});
return ListView(
children: userDocs.map((document) {
return buildItem(context, document);
}).toList(),
);
}
},
),