【发布时间】:2021-09-23 19:44:26
【问题描述】:
我正在改变我的应用获取数据的方式。我以前用 json 文件来做,但我现在改用 Firestore。我已经成功地使用 Streambuilder > ListView.builder 构建了一个列表,但我无法弄清楚如何将数据获取到详细信息页面。我似乎无法在互联网上找到任何解决方案。没有人在博客或教程中提及详细信息页面...
Streambuilder > ListView.Builder > List Items > Click item > Detailpage 具有相同的数据。
这是我目前所拥有的......
@override
Widget build(BuildContext context) {
SizeConfig().init(context);
return new Scaffold(
body: StreamBuilder(
stream: FirebaseFirestore.instance.collection('Crete').
where('prefecture', isEqualTo: 'Heraklion',).
where('type', isEqualTo: 'historical site',).snapshots(),
builder: (context, snapshot) {
if (!snapshot.hasData) return const Center(child: CircularProgressIndicator(),);
return ListView.builder(
itemCount: snapshot.data.docs.length,
itemBuilder: (context, index) =>
_buildListItemHeraklionHistoricalSites(context, snapshot.data.docs[index]),
);
}),
);
}
_buildListItemHeraklionHistoricalSites:
Widget _buildListItemHeraklionHistoricalSites(BuildContext context, DocumentSnapshot document){
return InkWell(
onTap: () => DetailsPageHistory(),
child: Container(
width: SizeConfig.blockSizeHorizontal*90,
height: SizeConfig.blockSizeVertical*20,
margin: EdgeInsets.only(bottom: 15, left: 20, right: 20),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(10),
image: DecorationImage(image: CachedNetworkImageProvider(document['image']),
fit: BoxFit.cover,),
),
child: Stack(
children: [
Container(
decoration: BoxDecoration(
color: Colors.black.withOpacity(0.2),
borderRadius: BorderRadius.circular(10),
),
),
],
)
),
);
}
【问题讨论】:
标签: firebase flutter google-cloud-firestore stream-builder