updateDocument method

  1. @override
Future<void> updateDocument(
  1. DocumentReference ref,
  2. DocumentData data
)
override

Implementation

@override
Future<void> updateDocument(DocumentReference ref, DocumentData data) =>
    ref._ref.update(data.map((k, v) {
      if (v is FieldValue) {
        return switch (v.type) {
          FieldValueType.delete =>
            MapEntry<String, dynamic>(k, cf.FieldValue.delete()),
          FieldValueType.increment => MapEntry<String, dynamic>(
              k, cf.FieldValue.increment(v.elements![0] as num)),
          FieldValueType.decrement => MapEntry<String, dynamic>(
              k, cf.FieldValue.increment(-v.elements![0] as num)),
          FieldValueType.arrayUnion => MapEntry<String, dynamic>(
              k, cf.FieldValue.arrayUnion(v.elements!)),
          FieldValueType.arrayRemove => MapEntry<String, dynamic>(
              k, cf.FieldValue.arrayRemove(v.elements!)),
          FieldValueType.serverTimestamp =>
            MapEntry<String, dynamic>(k, cf.FieldValue.serverTimestamp()),
        };
      }

      return MapEntry<String, dynamic>(k, v);
    }));