delete method

Future<Empty> delete(
  1. String name, {
  2. bool? currentDocument_exists,
  3. String? currentDocument_updateTime,
  4. List<String>? requestOptions_requestTags,
  5. String? $fields,
})

Deletes a document.

Request parameters:

name - Required. The resource name of the Document to delete. In the format: projects/{project_id}/databases/{database_id}/documents/{document_path}. Value must have pattern ^projects/\[^/\]+/databases/\[^/\]+/documents/\[^/\]+/.*$.

currentDocument_exists - When set to true, the target document must exist. When set to false, the target document must not exist.

currentDocument_updateTime - When set, the target document must exist and have been last updated at that time. Timestamp must be microsecond aligned.

requestOptions_requestTags - Optional. The request tags for the request. Request tags are user-provided strings used for usage monitoring, cost management, and observability. Callers can associate custom application context (such as component, microservice, feature name, or operation type) with database requests. These tags are collected and aggregated in usage and monitoring reports, allowing billable operations and usage metrics to be sliced and analyzed by tag. These tags only show up in monitoring and are visible in administrative operations (such as usage reports). They do not affect data storage, query semantics, or request execution. Cardinality and Best Practices: - Request tags are most effective when using a bounded set of distinct values (e.g., fewer than 100 distinct tags across an entire database). Using a large number of distinct tags may result in tags being omitted from top usage dashboards. - Use structured identifiers (for example: app=cart, env=prod, service=checkout) and avoid high-cardinality values such as UUIDs, request IDs, timestamps, user IDs, or document keys. - Do not include sensitive data or personally identifiable information (PII) in request tags, as they show up in administrative monitoring. The tags are processed as follows: - Leading and trailing whitespace is trimmed. - Empty tags (after trimming) are filtered out. - Truncated to a maximum of 510 characters. - Deduplicated within the same request. - Limited to a maximum of 50 tags per request (excess tags are silently discarded).

$fields - Selector specifying which fields to include in a partial response.

Completes with a Empty.

Completes with a commons.ApiRequestError if the API endpoint returned an error.

If the used http.Client completes with an error when making a REST call, this method will complete with the same error.

Implementation

async.Future<Empty> delete(
  core.String name, {
  core.bool? currentDocument_exists,
  core.String? currentDocument_updateTime,
  core.List<core.String>? requestOptions_requestTags,
  core.String? $fields,
}) async {
  final queryParams_ = <core.String, core.List<core.String>>{
    'currentDocument.exists': ?currentDocument_exists == null
        ? null
        : ['${currentDocument_exists}'],
    'currentDocument.updateTime': ?currentDocument_updateTime == null
        ? null
        : [currentDocument_updateTime],
    'requestOptions.requestTags': ?requestOptions_requestTags,
    'fields': ?$fields == null ? null : [$fields],
  };

  final url_ = 'v1/' + core.Uri.encodeFull('$name');

  final response_ = await _requester.request(
    url_,
    'DELETE',
    queryParams: queryParams_,
  );
  return Empty.fromJson(response_ as core.Map<core.String, core.dynamic>);
}