«Длина» геттера не определена для типа «Объект». // Оператор ‘[]’ не определен для типа ‘Объект’

# #firebase #flutter #google-cloud-firestore

Вопрос:

 @override
  Widget build(BuildContext context) {
    return Container(
      color: Colors.white,
      child: Column(
        children: [
          if(_dataLength!=0)
            FutureBuilder(
 
 import 'package:carousel_slider/carousel_slider.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:dots_indicator/dots_indicator.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';

class ImageSlider extends StatefulWidget {
  const ImageSlider({Key? key}) : super(key: key);

  @override
  _ImageSliderState createState() => _ImageSliderState();
}

class _ImageSliderState extends State<ImageSlider> {

  int _index = 0;
  int _dataLength=1;

  @override
  void initState() {
    getSliderImageFromDb();
    super.initState();
  }

  Future getSliderImageFromDb() async {
    var _fireStore = FirebaseFirestore.instance;
    QuerySnapshot snapshot = await _fireStore.collection('slider').get();
    if(mounted){
      setState(() {
        _dataLength=snapshot.docs.length;
      });
    }
    return snapshot.docs;
  }

  @override
  Widget build(BuildContext context) {
    return Container(
      color: Colors.white,
      child: Column(
        children: [
          if(_dataLength!=0)
            FutureBuilder(
              future: getSliderImageFromDb(),
              builder: (context, snapShot) {
                return snapShot.data == null ? const Center(child: CircularProgressIndicator(),) : Padding(
                  padding: const EdgeInsets.only(top: 4),
                  child: CarouselSlider.builder(
                      itemCount: snapShot.data!.length, // getting error here
                      itemBuilder: (context, int index, int add){
                        DocumentSnapshot sliderImage = snapShot.data![index]; // getting error here
                        Object? getImage = sliderImage.data();
                        return SizedBox(
                            width: MediaQuery.of(context).size.width,
                            child: Image.network(getImage!['image'],fit: BoxFit.fill)); // getting error here
                      },
                      options: CarouselOptions(
                          viewportFraction: 1,
                          initialPage: 0,
                          autoPlay: true,
                          height: 150,
                          onPageChanged: (int i,carouselPageChangedReason){
                            setState(() {
                              _index=i;
                            });
                          }
                      )),
                );
              },
            ),
          if(_dataLength!=0)
            DotsIndicator(
              dotsCount: _dataLength,
              position: _index.toDouble(),
              decorator: DotsDecorator(
                  size: const Size.square(5.0),
                  activeSize: const Size(18.0, 5.0),
                  activeShape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(5.0)),
                  activeColor: Theme.of(context).primaryColor
              ),
            )
        ],
      ),
    );
  }
} 
               future: getSliderImageFromDb(),
              builder: (context, snapShot) {
                return snapShot.data == null ? const Center(child: CircularProgressIndicator(),) : Padding(
                  padding: const EdgeInsets.only(top: 4),
                  child: CarouselSlider.builder(
                      itemCount: snapShot.data!.length, // getting error here
                      itemBuilder: (context, int index, int add){
                        DocumentSnapshot sliderImage = snapShot.data![index]; // getting error here
                        Object? getImage = sliderImage.data();
                        return SizedBox(
                            width: MediaQuery.of(context).size.width,
                            child: Image.network(getImage!['image'],fit: BoxFit.fill)); // getting error here
                      },
                      options: CarouselOptions(
                          viewportFraction: 1,
                          initialPage: 0,
                          autoPlay: true,
                          height: 150,
                          onPageChanged: (int i,carouselPageChangedReason){
                            setState(() {
                              _index=i;
                            });
                          }
                      )),
                );
              },
            ),