这是我的主要问题
firestore ordertBy()查询使应用程序无法在首次请求中获取数据
在这种情况下,简单说明一下:
-
在正常工作的智能手机上安装APP之后,我可以添加数据并读取该数据列表。
-
但是在我卸载并重新安装我的应用程序之后,无法访问该数据
-
从查询中删除orderBy()后,我的应用程序正常运行。
请问有人可以帮助我解决该问题吗?我需要订购数据列表
这是StreamBuilder的代码
StreamBuilder(
stream: Firestore.instance
.collection('murid ' + widget.email)
.where('kelas',isEqualTo: widget.kelas)
.where('emailGuru',isEqualTo: widget.email).orderBy('no')
.snapshots(),builder: (BuildContext context,Asyncsnapshot<Querysnapshot> snapshot) {
if (!snapshot.hasData) {
return new Container(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,children: <Widget>[
Row(
mainAxisAlignment: MainAxisAlignment.center,children: <Widget>[
Container(
height: 15.0,width: 15.0,child: CircularProgressIndicator(
strokeWidth: 1,),Padding(
padding: const EdgeInsets.all(8.0),child: Text(
'Loading ...',style: TextStyle(fontSize: 18.0),],Text(
'Data belum tersedia!',textAlign: TextAlign.center,);
} else {
return Stack(
children: <Widget>[
Container(
height: 55.0,color: Colors.blue[900],Padding(
padding: const EdgeInsets.only(top: 25.0),child: Container(
decoration: BoxDecoration(
color: Color.fromRGBO(227,242,253,1.0),borderRadius: BorderRadius.only(
topLeft: Radius.circular(30.0),topRight: Radius.circular(30.0)),child: Stack(
children: <Widget>[
Center(
child: Text(
"Pilih Akun",style: TextStyle(
fontSize: 40.0,fontWeight: FontWeight.bold,color: Colors.white54),DataMurid(
document: snapshot.data.documents,);
}
},
这是listView.builder
ListView.builder(
itemCount: widget.document.length,itemBuilder: (BuildContext context,int i) {
String no = widget.document[i].data['no'].toString();
return Container(
key: new Key(widget.document[i].documentID),child: Padding(
padding: const EdgeInsets.only(left: 20.0,right: 20.0),child: Column(
children: <Widget>[
Row(
children: <Widget>[
Expanded(
child: Container(
height: 40.0,decoration: BoxDecoration(
color: Colors.blue[900],borderRadius: BorderRadius.only(
topLeft: Radius.circular(300.0),bottomLeft: Radius.circular(300.0),topRight: Radius.circular(30.0),bottomRight: Radius.circular(30.0)),child: Center(
child: Text(
no,style: TextStyle(
fontSize: 14.0,color: Colors.white),
我需要订购该数字,因为列表视图使该数字值转换为字符串,如果数字大于9,则转换为结果,例如:
我的值'no'是[1,2,3,4,5,6,7,8,9,10,11,12],在我将该值调用给ListView之后,输出将如下所示:
1、10、11、12、2、3、4、5、6、7、8、9 //不带orderBy();