繁体   English   中英

如何在 flutter 中显示来自 firestore 的类别列表?

[英]How to show category list from firestore in flutter?

我有一个名为 collection 的产品,在那个产品集合中我保存了产品及其名称和类别。 现在我需要创建一个标签栏,其中包含产品内的所有类别列表。 问题是同一类别有多个产品。 我希望该类别显示一次。 如何做到这一点?

这是我的代码:

StreamBuilder<QuerySnapshot<Map<String, dynamic>>>(
  stream: FirebaseFirestore.instance.collection('products') .where("category").snapshots(),
  builder: (_, snapshot) {
    if (snapshot.hasError) return Text('Error = ${snapshot.error}');

    if (snapshot.hasData) {

      final docs = snapshot.data!.docs;

      return ListView.builder(
        itemCount: docs.length,
        itemBuilder: (_, i) {
          
          final data = docs[i].data();
          Set s = {};
          s.add( data["category"]);
          
          return ListTile(
            title: Text(s.elementAt(0).toString()),
            
          );
        },
      );
    }

    return Center(child: CircularProgressIndicator());
  },
)

你必须提供你的代码,

猜测这段代码将帮助你实现你的代码....

在这里我拍了电影而不是产品..你可以根据你的要求更正它......


class Movie {
  String name;
  String category;
  String language;
  int rating;

  Movie(
      {required this.name,
      required this.category,
      required this.language,
      required this.rating});
}

void main() {
  List<Movie> movielist = [
    Movie(name: 'Golmaal', category: 'Comedy', language: 'Hindi', rating: 5),
    Movie(name: 'Naseeb', category: 'Classic', language: 'Hindi', rating: 5),
    Movie(name: 'Hera Phery', category: 'Comedy', language: 'Hindi', rating: 5)
  ];

  final categories = movielist.map((e) => e.category).toSet();//this will generate unique category list..

  print(categories);
// now use this categories to ur design with listview or any list widgets
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM