Nidew
Nidew

Reputation: 487

The operator '[]' isn't defined for the type 'Map<String, dynamic> Function()'

I'm new to flutter and working on a chat app YouTube tutorial. now getting below error in my code. how to resolve this. appreciate your help on this.

enter image description here

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

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

class _SearchState extends State<Search> {


  DatabaseMethods databaseMethods = new DatabaseMethods();
  TextEditingController searchEditingController = new TextEditingController();
// QuerySnapshot searchSnapshot;
  QuerySnapshot <Map<String, dynamic>>? searchSnapshot;
 bool isLoading = false;
   bool haveUserSearched = false;

  Widget searchList(){

  return searchSnapshot != null? ListView.builder(
      itemCount: searchSnapshot!.docs.length,
      shrinkWrap: true,
  itemBuilder: (context,index){
        return SearchTile (
        name: searchSnapshot!.docs[index].data["name"],
        email: searchSnapshot!.docs[index].data["email"],
        );
  }) : Container();

}

Upvotes: 1

Views: 706

Answers (1)

Josteve Adekanbi
Josteve Adekanbi

Reputation: 12703

data is a method, not a getter or a field, add brackets like so:

  name: searchSnapshot!.docs[index].data()["name"],
  email: searchSnapshot!.docs[index].data()["email"],

Upvotes: 2

Related Questions