Flutter Firebase - отображать данные из базы данных из выпадающего меню - PullRequest
0 голосов
/ 23 марта 2020

Я создаю интернет-магазин и добавил данные в свою базу данных firebase, которая представляет собой магазин - мужчины - низ / обувь / топы, и хочу отобразить каждую категорию одежды через раскрывающееся меню, чтобы пользователь мог выбирать между одеждой и какой бы выбор они ни выбрали, данные об одежде будут отображаться.

Мой текущий код отображает только одну категорию, и мне интересно, как я могу отобразить эти категории с помощью выпадающего меню, любая помощь будет оценена!

class ListPage extends StatefulWidget {
  @override 
  _ListPageState createState() => _ListPageState();
}

class _ListPageState extends State<ListPage> {

  Future getTops() async {
      var firestone = Firestore.instance;

      QuerySnapshot tops = await firestone.collection("shop/mens/tops").getDocuments();

      return tops.documents;

    }

    Future getBottoms() async {
      var firestone = Firestore.instance;

      QuerySnapshot bottoms = await firestone.collection("shop/mens/bottoms").getDocuments();

      return bottoms.documents;

    }

    Future getShoes() async {
      var firestone = Firestore.instance;

      QuerySnapshot shoes = await firestone.collection("shop/mens/shoes").getDocuments();

      return shoes.documents;

    }

  Widget build(BuildContext context) {
    return Container(
      child: FutureBuilder(
          future: getBottoms(),
          builder: (_, snapshot) {
          if(snapshot.connectionState == ConnectionState.waiting) {
            return Center(
              child: Text('..loading'),
              );
          } else {
            return ListView.builder(
              itemCount: snapshot.data.length,
              itemBuilder: (_, index) {
                return ListTile(
                  leading: Image.network( snapshot.data[index].data["image"],),
                  title: Text(snapshot.data[index].data["name"],
                        style: TextStyle(fontSize: 15), 
                        textAlign: TextAlign.left,),
                  subtitle: Text(snapshot.data[index].data["price"],
                        style: TextStyle(fontWeight: 
                        FontWeight.bold, fontSize: 15),),
                        );
              }
            );
          }
          }
      )
    );
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...