我刚刚学习Flutter,我正在尝试制作一个理发师预约系统。我被理发店面板卡住了。现在,我的目标是将下面的数据写入我画的正方形中,并使用网格视图制作一个系统,该系统将更新预约数据,因为它将在每次预约到来时实时监听数据库。总结,如果新数据输入数据库,一个新的方块将出现在底部并显示数据。
i want to do
但是在编写代码的过程中,我一直收到这个错误。
error 1
error 2
下面是我代码:
final Stream<QuerySnapshot> dateRef =
FirebaseFirestore.instance.collection('date').snapshots();
StreamBuilder<QuerySnapshot>(
stream: dateRef,
builder: (context, AsyncSnapshot<QuerySnapshot> snapshot) {
if (snapshot.hasError) {
return Text('Bir şeyler ters gitti');
}
return ListView(
children:
snapshot.data!.docs.map((DocumentSnapshot document) { <---- error is here
Map<String, dynamic> data =
document.data()! as Map<String, dynamic>;
return ListTile(
title: Text(data['Ad']),
subtitle: Text(data['Soyad']),
);
}).toList(),
);
},
),
- Kod Planet我试图调用数据之前,观看他的频道的视频,我得到了上述错误。
- dbestech我通过在他的频道上观看视频更改了代码,它没有再次工作,我在同一个地方不断得到相同的错误。
- Cloud Firestore | FlutterFire我尝试了文档中实时更改标题中的代码,它仍然不起作用。
1条答案
按热度按时间rsl1atfo1#
StreamBuilder
的构建器有两个小部件选项可以显示和访问,一个是ListView
,您希望在其中显示您的响应,另一个是Text
on error,对吗?当
StreamBuilder
被放入小部件树时,dateRef
流将被第一次调用,并且没有错误,因为它没有得到第一个响应,但在此之前需要显示一些内容,因此ListView
被调用进行渲染,此时,没有快照,因此snapshot.data
是null
。你只需要设置一些东西来显示,直到得到第一个响应,这是一个
CircularProgressIndicator
小部件的常见用途:现在将显示加载指示器,直到它从Firebase获得第一个响应,然后它将如您所期望的那样显示
ListView
。