如何根据条件进行查询?

时间:2020-08-12 09:33:01

标签: firebase flutter google-cloud-firestore

我想根据某些无法满足的条件为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>,但是如果只有一个查询,工作完美。但是当我尝试根据条件切换查询不起作用时,会出现空快照错误。

如何根据条件切换查询?

1 个答案:

答案 0 :(得分:0)

请在每种情况下尝试如下:

setState(){
     query = Firestore.instance.collection('collection1');
   }
相关问题