Firestore возвращает 'instance of querysnapshot', даже если коллекция не существует - PullRequest
1 голос
/ 28 мая 2020
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

Очевидно, что collection ('aaaaaaaaaaaaaa') даже не существует, тогда почему он не возвращает null?

Ответы [ 2 ]

1 голос
/ 28 мая 2020

Запрос несуществующей (или пустой) коллекции не является ошибкой. Поэтому, когда результатов нет, Firestore выдает пустой QuerySnapshot вместо ошибки.

Чтобы определить, были ли результаты, проверьте, есть ли в QuerySnapshot документы (FlutterFire не кажется обернуть родной QuerySnapshot.isEmpty() метод .

0 голосов
/ 28 мая 2020

Вы должны использовать 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();
            },
          ),
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...