add method
Adds a new item to the repository.
Implementation
@override
Future<T> add(IdentifiedObject<T> item) async {
await _ensureNotExists(item.id);
final doc = store.doc(_normaliseToFullPath(item.id));
final json = RepositoryFirestore.typeConversionToFirebase.convert(
source: toFirestore(item.object),
);
await doc.set(json);
final newSnapshot = await doc.get();
final data = newSnapshot.data();
if (data == null) {
throw RepositoryException.notFound(item.id);
}
return fromFirestore(
newSnapshot.reference,
RepositoryFirestore.typeConversionFromFirebase.convert(
source: data,
),
);
}