readOrCreate method

  1. @override
Future<T> readOrCreate({
  1. required DocumentId docId,
  2. required T createValue,
})
override

Get the document by id, or create a new one

If the documentId returns a snapshot that does not exist, or data() returns null, create a new document with the docId provided.

Implementation

@override
Future<T> readOrCreate({
  required DocumentId docId,
  required T createValue,
}) async {
  final maybeData = await read(docId);

  if (maybeData != null) return maybeData;

  await createById(value: createValue, docId: docId);

  final data = await read(docId);

  return data!;
}