Я пытаюсь получить список из магазина, но у меня была проблема с индексами.
Это структура обычных элементов в списке, и каждый объект содержит список элементов:
class RestaurantFoodList {
final String id ;
final String title;
List <RestaurantitemList> items ;
final String imageUrl;
RestaurantFoodList({this.id,this.title,this.items,this.imageUrl});
}
Это структура самих предметов:
class RestaurantitemList {
final String id ;
final String title ;
final String imageUrl ;
final String description ;
final int price ;
final int shippingPrice;
List<Checkbox> cheker;
RestaurantitemList({this.id,this.title,this.imageUrl,this.description,this.price,this.shippingPrice,this.cheker});
}
Вот как я могу добавить объект в firestore:
Future<void> addLitem(RestaurantFoodList foodList, RestaurantitemList itemList) async {
final _fireStore = Firestore.instance;
_fireStore.collection('restaurant').add({
'title': foodList.title,
'imageUrl': foodList.imageUrl,
'items': [
{
'id': itemList.id,
'title': itemList.title,
'imageUrl': itemList.imageUrl,
}
],
});
}
и - это данные моего магазина, моя проблема в том, как правильно выбрать весь список и его элементы, я попробовал это, но это не сработало:
Future<void> fetchAndSetList() async {
final List<RestaurantFoodList> loadedList = [];
await Firestore.instance.collection("restaurant").getDocuments().then(
(QuerySnapshot snapshot) => snapshot.documents.forEach(
(f) => loadedList.insert(
0,
RestaurantFoodList(
id: f.data['id'],
imageUrl: f.data['imageUrl'],
title: f.data['title'],
items: [f.data['items']]
),
),
),
);
notifyListeners();
_restaurantItems[3].itemsList = loadedList;
}
примечание: если я напишу другой метод для получить элементы, которые я должен написать
items: loadedItem.add(RestaurantitemList(
id : f.data['items'][0]['id']
))
, но я хочу получить весь список элементов, а не только один элемент, поэтому подход к индексу здесь, я думаю, является ошибкой.