Home > Enterprise >  Flutter Cloud Firestore: error: The argument type 'Object? Function()' can't be assig
Flutter Cloud Firestore: error: The argument type 'Object? Function()' can't be assig

Time:02-11

I am trying to update some code which used an old Firestore version which is version 0.9.13 and I am updating it to the latest version. This code should pull data and populate a graph.

I have tried downgrading and upgrading to find a version that works, I can't seem to find a working version. There is a suggestion of adding a new argument to the model however I am unsure if this is the correct method.

Error Message:

error: The argument type 'Object? Function()' can't be assigned to the parameter type 'Map<String, dynamic>'. (argument_type_not_assignable at [firebase] lib\code\moodhomepage.dart:47)

Code:

Widget _buildBody(BuildContext context) {
return StreamBuilder<QuerySnapshot>(
  stream: FirebaseFirestore.instance.collection('moods').snapshots(),
  builder: (context, snapshot) {
    if (!snapshot.hasData) {
      return LinearProgressIndicator();
    } else {
      List<Mood> mood = snapshot.data!.docs
          .map((documentSnapshot) => Mood.fromMap(documentSnapshot.data))
          .toList();
      return _buildChart(context, mood);
    }
  },
);

}

CodePudding user response:

Add the type of the returned data:

Change this:

return StreamBuilder<QuerySnapshot>(

into this:

return StreamBuilder<QuerySnapshot<Map<String,dynamic>>(
  • Related