即使集合不存在,Firestore也会返回“ querysnapshot实例”

时间:2020-05-28 06:59:12

标签: firebase flutter google-cloud-firestore

StreamBuilder(
   stream: Firestore.instance.collection('aaaaaaaaaaaaaaaa').snapshots(),
    builder: ( context , snap){

      if(snap.data == null){
         print('A');
      }
      if(snap.data != null){
        print(snap.data);
        print('B');
      }

enter image description here

显然集合('aaaaaaaaaaaaaaaa')根本不存在,那么为什么它不返回null?

2 个答案:

答案 0 :(得分:1)

查询不存在(或为空)的集合不是错误。因此,如果没有结果,Firestore会为您提供空的QuerySnapshot,而不是错误。

要检测是否有任何结果,请检查QuerySnapshot是否有任何文档(FlutterFire似乎没有包装原生QuerySnapshot.isEmpty() method

答案 1 :(得分:0)

您应该使用hasData来检查是否有数据:

          StreamBuilder(
            stream: Firestore.instance.collection('aaaaaaaaaaaaaaaa').snapshots(),
            builder: (context, AsyncSnapshot<QuerySnapshot> snapshot) {
              if (snapshot.hasData) {
                print("a");
              } else{
                return Text("No data");
              }
              return CircularProgressIndicator();
            },
          ),