Это хорошая идея, чтобы найти Streams и Blocks для такого рода вещей. И я мог бы помочь с вашим кодом, чтобы помочь мне.
Но идея ниже в том, что у нас будет какой-то FutureBuilder, который будет использовать fetchItems () как будущее. В моем FirebaseDB существует документ Stores. Я просматриваю список элементов документа и создаю элемент для каждого элемента. Элемент имеет заводской инициализатор, который использует карту FirebaseDB.
class Item {
String name;
Timestamp date;
bool isSomething;
Item({this.name, this.description, this.price, this.quantity});
factory Item.fromJSON(Map<dynamic, dynamic> item) {
return Item(name: item["name"], date: item["date"], isSomething: item["isSomething"]);
}
}
Future<List<Item>> fetchItems() async {
return Firestore.instance.document("Stores").snapshots().map((snapshot) {
var name = snapshot.data["name"];
var itemInfo = snapshot.data["items"] as List;
return itemInfo.map((item) {
return Item.fromJSON(item);
}).toList();
}).single;
}