Можно ли разместить запрос firebase внутри виджета - PullRequest
0 голосов
/ 01 августа 2020

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

  Widget image_slider_carousel = Container(

      height: 250,
      child: Carousel(
        boxFit: BoxFit.cover,
        images: [
          AssetImage('images/abc.jpg'),
          AssetImage('images/abc.jpg'),
          AssetImage('images/abc.jpg'),
          AssetImage('images/abc.jpg'),
          AssetImage('images/abc.jpg'),



        ],
      ),

    );


return MaterialApp(
      debugShowCheckedModeBanner: false,

      home: SafeArea(
        child: Scaffold(
          appBar: AppBar(backgroundColor: Colors.red.withGreen(10),
            title: Padding(
              padding: const EdgeInsets.all(1),
              child: Text('KartOfill',style: TextStyle(color: Colors.white),

              ),

            ),
            titleSpacing: 50.0,
          ),
          body: SingleChildScrollView(
            scrollDirection: Axis.vertical,
            child: Container(
              height: 1350,
              color: Colors.white,
              child: Column(
                children: <Widget>[

                  image_slider_carousel, //// image carousel Widget

введите здесь описание изображения

1 Ответ

1 голос
/ 01 августа 2020

Используйте FutureBuilder для получения URL-адресов и используйте NetworkImage() вместо AssetImage(), например:

FutureBuilder<QuerySnapshot>(
  future: Firestore.instance.collection("AllimageSlider").getDocuments(),
  builder: (context, AsyncSnapshot<QuerySnapshot> snapshot) {
    if(snapshot.data != null)
      return Text("No Data!);
    else {
      List _docs = snapshot.data.documents;
      List<NetworkImage> _imgs = List();
      for(int i=0;i<_docs.length;i++)
        _imgs.add(new NetworkImage(_docs[i]["imageUrl"]));
      return Carousel(
        fit: BoxFit.cover,
        images: _imgs,
      );
    }
  },
)

Я почти уверен, что есть лучший способ сгенерировать _imgs Составьте список, используя что-то вроде .forEach(), и я забыл, как это использовать.

Проверьте и это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...