findStreamByQueryWithConverter method

Stream<List<T>> findStreamByQueryWithConverter({
  1. CollectionReferenceQuery<T>? collectionReferenceQuery,
  2. required String whereDescription,
})

Finds a Stream of list of T based on given collectionReferenceQuery and whereDescription.

Make sure to have specified the _toJson and _fromJson methods or else the FirestoreApi will not now how to convert the data to T.

If _tryAddLocalId is true then your data will also contain a local id field based on the _idFieldName specified in the constructor. Add this id field to your T and you will have easy access to the document id at any time.

If _tryAddLocalDocumentReference is true then your data will also contain a local reference field based on the _documentReferenceFieldName specified in the constructor. Add this reference field to your T and you will have easy access to the document reference at any time.

If you rather want to retrieve data in the raw form of a List<Map<String, dynamic>> consider using the findStreamByQuery method instead.

Implementation

Stream<List<T>> findStreamByQueryWithConverter({
  CollectionReferenceQuery<T>? collectionReferenceQuery,
  required String whereDescription,
}) {
  _log.info(
    message: 'Finding stream by query with converter..',
    sensitiveData: _shouldNotSensitiveInfo
        ? null
        : SensitiveData(
            path: _collectionPath(),
            whereDescription: whereDescription,
          ),
  );
  return collectionReferenceQuery!(findCollectionWithConverter())
      .snapshots()
      .map(
        (event) => event.docs.map((e) => e.data()).toList(),
      );
}