Not getting data from firebase database. StreamTransformer error

Viewed 72

I just updated packages in my flutter application. All functionality was working before but after I made changes in my code (ie. changed document to doc, changed getDocuments to get, etc.) it is not getting data from firebase.

This snippet of code is supposed to get specific events from an 'events' collection in firebase. In another page I display them.

The error message is saying that it has something to do with the StreamTransformer line which is in the code below.

Error Message: AsyncSnapshot<Stream<List<DocumentSnapshot<Object?>>>>(ConnectionState.done, null, type '_StreamHandlerTransformer<QuerySnapshot<Object?>, List<DocumentSnapshot<Object?>>>' is not a subtype of type 'StreamTransformer<QuerySnapshot<Map<String, dynamic>>, List<DocumentSnapshot>>', #0 EventProvider._getListOfHosting

//get events
Future<Stream<List<DocumentSnapshot>>> _getListOfHosting({
@required String currentUserId,
//@required bool isHosting,
@required bool isPresent,
//bool isGetRequest = false,
})   async {
return _firestore.collection('events').snapshots().transform(
  StreamTransformer<QuerySnapshot, List<DocumentSnapshot>>.fromHandlers(
    handleData: (querySnapshot, sink) async {
      print('loading friend list of $currentUserId');

      final eventList = await _firestore
          .collection('events')
          .where('host', isEqualTo: currentUserId)
          .get();
      print(eventList);

      //event list contains all events that have the host as current user

      final _hostsList = List<DocumentSnapshot>();
      final _presentHostList = List<DocumentSnapshot>();

      print('HostList: $_hostsList');

      for (final doc in eventList.docs) {
        if (DateTime.parse(doc.get('date'))
                .day
                .compareTo(DateTime.now().day) <=
            0) {
          _presentHostList.add(doc);
        }
        _hostsList.add(doc);
      }
      print('_hostList: $_hostsList');
      if (isPresent) {
        sink.add(_presentHostList);
      } else {
        sink.add(_hostsList);
      }
    },
  ),
);

As of right now, I am stuck in a loading circle screen. What am I doing wrong?

0 Answers
Related