【发布时间】:2020-08-25 04:06:45
【问题描述】:
在显示我的项目之前,我不断收到轻微的 null 错误。请问我可以在没有遇到任何错误的情况下获得有关使用 streambuilder 的最佳方法的帮助吗?
【问题讨论】:
-
你能分享一个代码 sn-p 以便 SO 的人可以看看并帮助你吗?
标签: android ios firebase flutter google-cloud-firestore
在显示我的项目之前,我不断收到轻微的 null 错误。请问我可以在没有遇到任何错误的情况下获得有关使用 streambuilder 的最佳方法的帮助吗?
【问题讨论】:
标签: android ios firebase flutter google-cloud-firestore
使用ConnectionState:
StreamBuilder(
stream: Firestore.instance.collection('stores').document(currentUserUID).snapshots(),
builder: (context, AsyncSnapshot<DocumentSnapshot> snapshot) {
if (snapshot.connectionState == ConnectionState.done) {
return ListView.builder(
shrinkWrap: true,
itemCount: 1,
itemBuilder: (BuildContext context, int index) {
return ListTile(
contentPadding: EdgeInsets.all(8.0),
title: Text(snapshot.data.data["about"]),
leading: Text(
snapshot.data.data["location"],
));
});
} else if (snapshot.connectionState == ConnectionState.none) {
return Text("No data");
}
return CircularProgressIndicator();
},
),
https://api.flutter.dev/flutter/widgets/ConnectionState-class.html
【讨论】:
StreamBuilder<QuerySnapshot>(
stream:
Firestore.instance.collection('users').snapshots(),
builder: (context, snapshot) {
if (snapshot.hasError)
return Center(child:Text('${snapshot.error.toString()}'));
if (snapshot.hasData) {
final List<DocumentSnapshot> documents = snapshot
.data.documents;
return ListView.builder(
itemCount: documents.length,
itemBuilder: (context, index) => RestaurantCard(
documents[index].documentID,
name: documents[index].data['name'],
address: documents[index].data['address'],
image: documents[index].data['photo'],
),
scrollDirection: Axis.horizontal,
);
} else {
return Center(child: CircularProgressIndicator());
}
},
)
【讨论】: