Firebase 颤振-Firestore菜单功能

Firebase 颤振-Firestore菜单功能,firebase,flutter,nosql,dynamiclayout,Firebase,Flutter,Nosql,Dynamiclayout,我想在Flatter&firebase中创建一个在线交付项目。对于菜单部分,每个产品都有不同的属性,如何根据每个项目的属性显示不同的屏幕(或小部件)?(例如,当我在屏幕上点击咖啡时,我想在屏幕上显示尺寸、糖的详细信息,而在汉堡上我想显示配料、肉类类型等)有人对我如何做到这一点有什么想法/建议吗?这是一个广泛的话题,给你一个提示,或者你可以做的一个方法是收集(产品)每个文档代表一个独特的产品,您可以按如下方式填充列表 class ProductsList extends StatelessWidg

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

这是一个广泛的话题,给你一个提示,或者你可以做的一个方法是收集(产品)每个文档代表一个独特的产品,您可以按如下方式填充列表

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(),
            );
        }
      },
    );
  }
}
类产品列表扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
返回流生成器(
流:Firestore.instance.collection('Products').snapshots(),
生成器:(BuildContext上下文,异步快照){
if(snapshot.hasError)
返回新文本('Error:${snapshot.Error}');
交换机(快照.连接状态){
case ConnectionState.waiting:返回新文本('Loading…');
违约:
返回新的ListView(
子项:snapshot.data.documents.map((DocumentSnapshot文档){
返回新的ListTile(
标题:新文本(文件['title']),
副标题:新文本(文档['description']),
);
}).toList(),
);
}
},
);
}
}
之后,在ListTile的onTap中导航到产品页面,将数据作为参数传递