我想在 Flutter 和 Firebase 中创建一个在线交付项目。对于菜单部分,每个产品都有不同的属性,我如何根据每个项目的属性显示不同的屏幕(或小部件)?(例如,当我点击咖啡时,在屏幕上我想显示尺寸、糖分的详细信息,而在汉堡上我想显示浇头、肉类型等)有人对我如何做到这一点有任何想法/建议吗?数据库中的菜单集合示例
问问题
16 次
1 回答
0
这是一个广泛的话题,给你一个提示或者你可以做到这一点的一种方法是制作 Collection(Products) 并且每个文档都代表一个独特的产品,你可以像下面一样填充列表,
class ProductsList extends StatelessWidget {
@override
Widget build(BuildContext context) {
return StreamBuilder<QuerySnapshot>(
stream: Firestore.instance.collection('Products').snapshots(),
builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) {
if (snapshot.hasError)
return new Text('Error: ${snapshot.error}');
switch (snapshot.connectionState) {
case ConnectionState.waiting: return new Text('Loading...');
default:
return new ListView(
children: snapshot.data.documents.map((DocumentSnapshot document) {
return new ListTile(
title: new Text(document['title']),
subtitle: new Text(document['description']),
);
}).toList(),
);
}
},
);
}
}
之后在 ListTile 的 onTap 中导航到将数据作为参数传递的产品页面。
于 2020-04-05T11:37:23.647 回答