У меня есть построитель потока, который должен возвращать несколько LisTile, но он возвращает только один, я использовал ту же структуру с другими коллекциями, и она отлично работает, но для этой коллекции это не так.
Widget build(BuildContext context) {
return StreamBuilder(
stream: DatabaseService().itemsCollection.snapshots(),
builder: ( context, snapshot){
if (!snapshot.hasData){
return Loading();
}
else{
List<Item> myItems= [];
for (int i=0; i<snapshot.data.documents.length; i++){
DocumentSnapshot snap = snapshot.data.documents[i];
myItems.add(
Item(
restaurantId: snap.data['restaurantId'],
id:snap.documentID ?? '',
name:snap.data['name']?? '',
price:double.tryParse(snap.data['price'].toString())?? 0,
calories:double.tryParse(snap.data['calories'].toString())?? 0,
section: MenuSection('','',''),
imageUrl:snap.data['imageUrl']?? '',
describtion: snap.data['describtion']?? '')
);
return
ListView.builder(
itemCount: myItems.length,
itemBuilder: (_, i) => Column(
children: [
ItemListItem(
id: myItems[i].id,
name: myItems[i].name,
describtion: myItems[i].describtion,
price: double.tryParse(myItems[i].price.toString()),
imageUrl: myItems[i].imageUrl,
// branchId: branchId,
restId: myItems[i].restaurantId ,
),
// Divider(),
], ),
);
}
}
}
);
Данные в FireStore
Если кто-нибудь может найти, где проблема, пожалуйста.
================ ОБНОВЛЕНИЕ =================
Проблема решена.
Кому может возникнуть эта проблема позже,
Я нашел проблема в том, что я поместил оператор return внутри для l oop, в то время как это должно произойти после окончания l oop!