Почему мой снимок показывает, что он содержит данные? - PullRequest
0 голосов
/ 21 мая 2019

У меня есть построитель потока:

 StreamBuilder(
          stream: Firestore.instance
              .collection('stripe_customers')
              .document(userId)
              .collection('sources')
              .document('source')
              .snapshots(),
          builder: (context, snapshot) {
            if (!snapshot.hasData) {
              return new Text("hello");
            }else {
              var userDocument = snapshot.data;
              return new Text(userDocument["card"]['exp_year'].toString());
            }
          },
        ),

Когда collection('sources') не существует, я ожидаю, что будет отображаться hello, но вместо этого код

{
              var userDocument = snapshot.data;
              return new Text(userDocument["card"]['exp_year'].toString());
            }

исполняется.Коллекция не существует в пожарном магазине ... так что мне интересно, почему это происходит?

1 Ответ

2 голосов
/ 21 мая 2019

Возможно, вы получаете пустой список [], но это не null, поэтому hasData имеет значение true.

Вы должны проверить длину результата:

if (!snapshot.hasData || snapshot.data.length == 0) {
   // Nothing found here...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...