delete method

Future<void> delete()

Deletes the document.

Deleted documents are immediately reflected and removed from related collections, etc.

Implementation

Future<void> delete() async {
  if (_completer != null) {
    await future;
    return;
  }
  _completer = Completer<void>();
  try {
    await onDelete();
    _query ??= _LocalStoreDocumentQuery(
      path: path,
      callback: _handledOnUpdate,
      origin: this,
    );
    value = fromMap(filterOnLoad(const {}));
    LocalDatabase._db.deleteDocument(_query!);
    notifyListeners();
    await onDidDelete();
    _completer?.complete();
    _completer = null;
  } catch (e) {
    _completer?.completeError(e);
    _completer = null;
  } finally {
    _completer?.complete();
    _completer = null;
  }
}