我想根据某些无法满足的条件为StreamBuilder<QuerySnapshot>
处理查询。下面是编码的查询
Query query;
if (a==b){
query = Firestore.instance.collection('collection1');
}
else if (c==d){
query = Firestore.instance.collection('collection2');
}
else if (e==f){
query = Firestore.instance.collection('collection3');
}
内部小部件构建
StreamBuilder<QuerySnapshot>(
stream: query.snapshots(),
builder: (context,snapshot){
if (!snapshot.hasData){
return Text("Loading");
}
return ListView.builder(
itemCount: snapshot.data.documents.length,
itemBuilder: (context, index){
String names = snapshot.data.documents[index]['name'];
List steps = List.castFrom(snapshot.data.documents[index]["steps"])
return NameCard(names: names,steps: steps);
});
},
)
在检查条件之后,我需要切换查询,然后满足if-else
条件的查询将继续进行以使事情发生StreamBuilder<QuerySnapshot>
,但是如果只有一个查询,工作完美。但是当我尝试根据条件切换查询不起作用时,会出现空快照错误。
如何根据条件切换查询?
答案 0 :(得分:0)
请在每种情况下尝试如下:
setState(){
query = Firestore.instance.collection('collection1');
}