batchWrite method

Future<BatchWriteResponse> batchWrite(
  1. BatchWriteRequest request,
  2. String database, {
  3. String? $fields,
})

Applies a batch of write operations.

The BatchWrite method does not apply the write operations atomically and can apply them out of order. Method does not allow more than one write per document. Each write succeeds or fails independently. See the BatchWriteResponse for the success status of each write. If you require an atomically applied set of writes, use Commit instead.

request - The metadata request object.

Request parameters:

database - Required. The database name. In the format: projects/{project_id}/databases/{database_id}. Value must have pattern ^projects/\[^/\]+/databases/\[^/\]+$.

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

Completes with a BatchWriteResponse.

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<BatchWriteResponse> batchWrite(
  BatchWriteRequest request,
  core.String database, {
  core.String? $fields,
}) async {
  final _body = convert.json.encode(request);
  final _queryParams = <core.String, core.List<core.String>>{
    if ($fields != null) 'fields': [$fields],
  };

  final _url =
      'v1/' + core.Uri.encodeFull('$database') + '/documents:batchWrite';

  final _response = await _requester.request(
    _url,
    'POST',
    body: _body,
    queryParams: _queryParams,
  );
  return BatchWriteResponse.fromJson(
      _response as core.Map<core.String, core.dynamic>);
}