createDuplicate<T extends DuplicateDatabaseObject> method

Future<T> createDuplicate<T extends DuplicateDatabaseObject>(
  1. DocumentReference<Object?> r,
  2. T creator()
)

Implementation

Future<T> createDuplicate<T extends DuplicateDatabaseObject>(
    DocumentReference r, T Function() creator) async {
  if (!isMainObject) {
    throw 'Only main object can create duplicates';
  }
  T duplicate = creator();
  duplicate.fromMap(toMap());
  await duplicate.update(r);
  duplicateRefs.add(duplicate.ref!);
  await ref!.update({'duplicateRefs': duplicateRefs});
  return duplicate;
}