findDocSnapshot method

Future<DocumentSnapshot<Map<String, dynamic>>> findDocSnapshot({
  1. required String id,
  2. String? collectionPathOverride,
})

Finds a DocumentSnapshot of type Map<String, dynamic> based on given id.

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 form of T consider using the findDocSnapshotWithConverter method instead.

Implementation

Future<DocumentSnapshot<Map<String, dynamic>>> findDocSnapshot({
  required String id,
  String? collectionPathOverride,
}) async {
  assert(
    _isCollectionGroup == (collectionPathOverride != null),
    'Firestore does not support finding a document by id when communicating with a collection group, '
    'therefore, you must specify the collectionPathOverride containing all parent collection and document ids '
    'in order to make this method work.',
  );
  final docRef =
      findDocRef(id: id, collectionPathOverride: collectionPathOverride);
  _log.info(
    message: 'Finding document snapshot..',
    sensitiveData: _shouldNotSensitiveInfo
        ? null
        : SensitiveData(
            path: collectionPathOverride ?? _collectionPath(),
            id: id,
          ),
  );
  return docRef.get(_getOptions);
}