Home > Back-end >  Future<dynamic> is not a subtype of List<dynamic>
Future<dynamic> is not a subtype of List<dynamic>

Time:03-12

So I am trying to pass a list of String values from firestore table, but I am getting an exception type 'Future<dynamic>' is not a subtype of type 'List<dynamic>'

This is the function

  getLectureList(String userId) async {
    var collection = FirebaseFirestore.instance.collection('students');
    var docSnapshot = await collection.doc(userId).get();
    Map<String, dynamic>? data = docSnapshot.data();
    List<String> _lectureList =
        await data!['attendance']; //This line is kinda giving me trouble
    userInfo = FirestoreWrapper()
        .getStudentFromData(docId: currentUser(), rawData: data);
    return _lectureList;
  }

And this is the function where I am getting the exception thrown

 @override
  void initState() {
    lectureList = getLectureList(currentUser()); // Getting an exception here
    NearbyConn(context).searchDevices(devices: deviceList);
    super.initState();
  }

tried using await in the getLectureList() method but still getting the same problem

CodePudding user response:

Why do you await your data? You already got it.

List<String> _lectureList = data!['attendance'];

Please note that I don't know what your data structure looks like, so I cannot tell you if this is correct, I can only tell you that it is more correct than before, because the await did not belong there.

CodePudding user response:

Instead of List _lectureList = await data!['attendance'];

Try this _lectureList = await data![] As List

  • Related