-1

我想在 Flutter 和 Firebase 中创建一个在线交付项目。对于菜单部分,每个产品都有不同的属性,我如何根据每个项目的属性显示不同的屏幕(或小部件)?(例如,当我点击咖啡时,在屏幕上我想显示尺寸、糖分的详细信息,而在汉堡上我想显示浇头、肉类型等)有人对我如何做到这一点有任何想法/建议吗?数据库中的菜单集合示例

4

1 回答 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 回答