Future<T?> fetchModel<T>({ required DocumentReference ref, required T Function(Map<String, dynamic>) fromMap, });