updateDoc method

Future<FirestoreErrors?> updateDoc({
  1. required String docPath,
  2. Map<String, Object?>? data,
  3. Iterable<String>? deletePaths,
})

Implementation

Future<FirestoreErrors?> updateDoc({
  required String docPath,
  Map<String, Object?>? data,
  Iterable<String>? deletePaths,
}) async {
  data ??= {};
  try {
    data.removeWhere((key, value) => value == null);
    if (deletePaths != null) {
      data.addEntries(
        deletePaths.map((e) => MapEntry(e, FieldValue.delete())),
      );
    }
    if (data.isNotEmpty) {
      await firestoreInstance.doc(docPath).update(data);
    }
  } catch (error, stackTrace) {
    return FirestoreErrors(error, stackTrace);
  }
  return null;
}