流生成器在flutter中返回空值,尽管数据存在于cloud firestore文档中



我需要帮助处理一个流生成器返回空值的情况。

我正在尝试检索存储在cloudfirestore中的服务列表,稍后将使用listviewbuilder显示。现在尝试在容器小部件中查看。

我正在附上一张来自我的云消防仓库数据的快照。

提前感谢。

这是我的代码,

return Scaffold(
key: _globalKey,
body: Padding(
padding: EdgeInsets.only(left: 20, top: 50, right: 20),
child: StreamBuilder<QuerySnapshot>(
stream: _firestore
.collection('city')
.doc(Pune)
.collection(Pashan)
.doc('merchantData')
.collection('merchantInfo')
.where('categoryType', isEqualTo: 'Services')
.orderBy('storeType', descending: true)
.snapshots(),
builder: (context, AsyncSnapshot<QuerySnapshot> snapshot) {
print(snapshot.data);
if (snapshot.data != null) {
_storeTypes.clear();
for (var num in snapshot.data.docs) {[enter image description here][1]
if (!_storeTypes.contains(num['storeType'])) {
_storeTypes.add(
num['storeType'],
);
}
}
}
return ListView.builder(
itemCount: _storeTypes.length,
itemBuilder: (context, index) {
return Container(
child: Center(
child: Text(_storeTypes[index]),
),
);
},
);
},
),
),

这是因为你试图在从firebase获取数据之前使用数据,所以为了避免上述错误,请在你的if条件上添加以下代码。如果你发现这个答案是正确的,请投票给这个答案

if (snapshot.hasError) {
return Center(
child: Text("Something went wrong"),
);
}
if (!snapshot.hasData) {
return Center(
child: Text("No notice found"),
);
}
if (snapshot.connectionState == ConnectionState.waiting) {
return Center(child: CircularProgressIndicator());
}

最新更新