Я могу добавлять и обновлять данные в firestore, я также могу извлекать поток коллекции и превращать его в список объектов, НО я не могу получить только один раз коллекцию и преобразовать ее в список объектов.
// Получаем поток из Firestore
Stream<QuerySnapshot> getDataDateStream(String uid, int startDateTime, int endDateTime) {
CollectionReference usersDataCollection = Firestore.instance.collection('users').document(uid).collection('data');
Stream<QuerySnapshot> snapshots = dataCollection.where('dataDateTime', isGreaterThanOrEqualTo: startDateTime).where('dataDateTime', isLessThanOrEqualTo: endDateTime).snapshots();
return snapshots;
}
// Преобразует поток в список
List<DataSavedModel> ListToday = List<DataSavedModel>();
StreamSubscription<QuerySnapshot> dataSubToday;
dataSubToday = db.getDataDateStream(appState.user.uid, startTimeToday, todayEndTime).listen((QuerySnapshot snapshot) {
final List<DataSavedModel> ModelListToday = snapshot.documents.map((documentSnapshot) => DataSavedModel.fromMap(documentSnapshot.data)).toList();
setState(() {
this.ListToday = ModelListToday;
});
});
Это работает, но я не хочу возвращать поток, поскольку я хочу получить данные только один раз, чтобы просмотреть список и выполнить над ним какие-либо действия.