【发布时间】:2020-05-19 15:15:33
【问题描述】:
这对我来说有点像一个错误,但我不确定。我在通过 Stream Builder 运行的 Flutter 应用程序中有简单的 Firestore 查询。看起来像这样 -
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 会返回 true,但似乎情况并非如此。我也尝试过使用 ConnectionState,但这总是返回 .waiting。
在这种情况下,您如何区分正在加载的查询和不返回任何结果的查询?
【问题讨论】:
-
分享查询将帮助我们帮助您。
-
啊,是的,这会很有帮助!已更新。
-
我知道您将查询放在流属性中只是为了举例,但您可能想单独显示它,否则其他用户会说这是问题的一部分,因为它会重新- 每次重建小部件时打开流。
-
我明白你在说什么,但即使上面的内容被简化了,它仍然显示相同的症状。实际上,虽然它并没有太大的不同,因为我只是从一个集团返回相同的流。
-
@ChrisEdgington 嗨,您找到发生这种情况的原因了吗?我也有同样的情况。当没有数据时,connectionState 总是“等待”。一旦我将文档添加到 Firestore,connectionState 就会变为“活动”
标签: firebase flutter google-cloud-firestore