Я пытался в течение недели, искать и изменять свой код, но я просто не могу заставить его работать .. Я хочу создать список виджетов внутри стека и перепробовал много методов.Ниже приведен мой тестовый код с использованием метода forEach и методов StreamBuilder:
Метод 1:
class Recordlist extends StatelessWidget {
@override
Widget build(BuildContext context) {
Firestore.instance.collection('records').document(uid).collection("pdrecords").getDocuments().then( (querySS) {
querySS.documents.forEach( (doc) {
return new Container();
});
}).catchError( (e) {
return new Container();
});
}
}
Выше указано, что функция никогда не возвращает виджет
Метод 2:
class Recordlist extends StatelessWidget {
@override
Widget build(BuildContext context) {
Double count = 0.5;
return new StreamBuilder <QuerySnapshot>(
stream: Firestore.instance.collection('records').document(uid).collection("pdrecords").snapshots(),
builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) {
//final int recordCount = snapshot.data.documents.length;
if (snapshot.hasData) {
final int recordCount = snapshot.data.documents.length;
print("got data. records: $recordCount");
if (recordCount >0) {
switch (snapshot.connectionState) {
case ConnectionState.none: return new Text('');
case ConnectionState.waiting: return new Text('Fetching data ...');
case ConnectionState.active: {
count = count + 1.0; print("count: $count");
return new ListPDRecord(
margin: new EdgeInsets.only(bottom: 10.0) * count, // listSlidePosition * 5.5,
width: listTileWidth.value,
title: snapshot.data.documents.elementAt(0)['starttime'],
subtitle: snapshot.data.documents.elementAt(0)['endtime'],
image: nodata,
);
}
break;
case ConnectionState.done: return new Text('Done:');
}
} else {
return noDataListData(
listSlidePosition: listSlidePosition,
listTileWidth: listTileWidth,
);
}
}
}
Этот метод всегда показывает 1 элемент, независимо от того, сколько элементов у меня есть в базе данных Firebase.Я подозреваю, что он возвращает одну и ту же позицию, поэтому у него много предметов, сложенных друг на друга.
Я действительно запутался.Очень ценю помощь.