Для меня это немного похоже на ошибку, но я не уверен. У меня есть простой запрос Firestore в приложении Flutter, которое я запускаю через Stream Builder. Выглядит примерно так -
StreamBuilder(
stream: Firestore.instance.collection('users').where('toNumber', isEqualTo: '123').snapshots();
builder: (context, snapshot) {
if (!snapshot.hasData) {
return Center(
child: CircularProgressIndicator(),
);
} else {
if (snapshot.data.length == 0) {
return Center(child: Text("No Data"));
} else {
return ListView.builder(
itemCount: snapshot.data.length,
itemBuilder: (context, index) =>
_buildList(
context, snapshot.data[index]),
);
}
}
)
Проблема в том, что если запрос не возвращает результатов, то все, что вы видите в индикаторе непрерывного прогресса. Я бы подумал hasData
вернул бы истину, но, похоже, это не так. Я также пытался использовать ConnectionState, но это всегда возвращает .waiting
.
В этой ситуации, как бы вы различали запрос, который загружается, и запрос, который не возвращает никаких результатов?