我正在尝试使用streambuilder从Cloud Firestore中获取一些数据,并使用该数据返回一列,问题是当我尝试将for循环插入到构建器时(如代码块所示),它会提示我,构建器函数返回null,在删除for循环时不会发生。
问题是我需要使用for循环(或类似的循环)来实现所需的功能,因为我正在使用成对的数据(如代码块所示),因此第一个容器使用数据快照{{ 1}},第二个使用数据快照i
。然后对于下一次迭代,i+1
将是i
,因此for循环就可以完成此工作。
我还为您提供了堆栈跟踪。预先感谢。
2
Container(
height: MediaQuery.of(context).size.height * 0.35,
child: StreamBuilder(
stream: Firestore.instance.collection('XXXXX').document('XXXXXXXXX').collection('XXXXXX').snapshots(),
builder: (context, snapshot) {
if(!snapshot.hasData) return
Center(
child: Text('No documents to be shown')
);
final int largoDocumentos = snapshot.data.documents.length;
for(var i = 0; i > largoDocumentos; i = i + 2) {
return Column(
children: <Widget>[
Container(
height: 130,
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Material(
color: Colors.blueGrey[50],
child: InkWell(
borderRadius: BorderRadius.circular(28.0),
onTap: () {
},
child: Container(
width: MediaQuery.of(context).size.width * 0.4,
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Text(snapshot.data.documents[i]['XXXXX'].toUpperCase(),
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 18,
fontFamily: 'Montserrat',
fontWeight: FontWeight.bold,
color: Colors.grey)
),
RadialProgress(0, 65.0, 20.0),
],
),
),
),
),
Material(
color: Colors.blueGrey[50],
child: InkWell(
borderRadius: BorderRadius.circular(28.0),
onTap: () {
},
child: Container(
width: MediaQuery.of(context).size.width * 0.4,
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Text(snapshot.data.documents[i+1]['XXXXX'].toUpperCase(),
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 18,
fontFamily: 'Montserrat',
fontWeight: FontWeight.bold,
color: Colors.grey)
),
RadialProgress(30, 65.0, 20.0),
],
),
),
),
),
],
),
),
SizedBox(height: 25,),
],
);
}
},
),
),