---
title: "POST /v1/{+database}/documents:batchWrite"
method: POST
path: "/v1/{+database}/documents:batchWrite"
tags: ["projects"]
---

# POST /v1/{+database}/documents:batchWrite

`POST /v1/{+database}/documents:batchWrite`

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.

## Path parameters

- `database` string, required

## Request body

- BatchWriteRequest — The request for Firestore.BatchWrite.
  - `labels` object — Labels associated with this batch write.
  - `writes` Write[] — The writes to apply. Method does not apply writes atomically and does not guarantee ordering. Each write succeeds or fails independently. You cannot write to the same document more than once per request.
    - `currentDocument` Precondition — A precondition on a document, used for conditional operations.
      - `exists` boolean — When set to `true`, the target document must exist. When set to `false`, the target document must not exist.
      - `updateTime` string, google-datetime — When set, the target document must exist and have been last updated at that time. Timestamp must be microsecond aligned.
    - `transform` DocumentTransform — A transformation of a document.
      - `document` string — The name of the document to transform.
      - `fieldTransforms` FieldTransform[] — The list of transformations to apply to the fields of the document, in order. This must not be empty.
        - `fieldPath` string — The path of the field. See Document.fields for the field path syntax reference.
        - `setToServerValue` 'SERVER_VALUE_UNSPECIFIED' | 'REQUEST_TIME' — Sets the field to the given server value.
        - `minimum` Value — A message that can hold any of the supported value types.
          - `timestampValue` string, google-datetime — A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
          - `pipelineValue` Pipeline — A Firestore query represented as an ordered list of operations / stages.
            - `stages` Stage[] — Required. Ordered list of stages to evaluate.
              - …
          - `booleanValue` boolean — A boolean value.
          - `geoPointValue` LatLng — An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges.
            - `latitude` number, double — The latitude in degrees. It must be in the range [-90.0, +90.0].
            - `longitude` number, double — The longitude in degrees. It must be in the range [-180.0, +180.0].
          - `functionValue` Function — Represents an unevaluated scalar expression. For example, the expression `like(user_name, "%alice%")` is represented as: ``` name: "like" args { field_reference: "user_name" } args { string_value: "%alice%" } ```
            - `name` string — Required. The name of the function to evaluate. **Requires:** * must be in snake case (lower case with underscore separator).
            - `args` Value[] — Optional. Ordered list of arguments the given function expects.
            - `options` object — Optional. Optional named arguments that certain functions may support.
          - `variableReferenceValue` string — Pointer to a variable defined elsewhere in a pipeline. Unlike `field_reference_value` which references a field within a document, this refers to a variable, defined in a separate namespace than the fields of a document.
          - `arrayValue` ArrayValue — An array value.
            - `values` Value[] — Values in the array.
          - `fieldReferenceValue` string — Value which references a field. This is considered relative (vs absolute) since it only refers to a field and not a field within a particular document. **Requires:** * Must follow field reference limitations. * Not allowed to be used when writing documents.
          - `bytesValue` string, byte — A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
          - `stringValue` string — A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
          - `mapValue` MapValue — A map value.
            - `fields` object — The map's fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
          - `integerValue` string, int64 — An integer value.
          - `doubleValue` number, double — A double value.
          - `nullValue` 'NULL_VALUE' — A null value.
          - `referenceValue` string — A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
        - `appendMissingElements` ArrayValue — An array value.
          - `values` Value[] — Values in the array.
            - `timestampValue` string, google-datetime — A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
            - `pipelineValue` Pipeline — A Firestore query represented as an ordered list of operations / stages.
              - …
            - `booleanValue` boolean — A boolean value.
            - `geoPointValue` LatLng — An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges.
              - …
            - `functionValue` Function — Represents an unevaluated scalar expression. For example, the expression `like(user_name, "%alice%")` is represented as: ``` name: "like" args { field_reference: "user_name" } args { string_value: "%alice%" } ```
              - …
            - `variableReferenceValue` string — Pointer to a variable defined elsewhere in a pipeline. Unlike `field_reference_value` which references a field within a document, this refers to a variable, defined in a separate namespace than the fields of a document.
            - `arrayValue` ArrayValue — recursive
            - `fieldReferenceValue` string — Value which references a field. This is considered relative (vs absolute) since it only refers to a field and not a field within a particular document. **Requires:** * Must follow field reference limitations. * Not allowed to be used when writing documents.
            - `bytesValue` string, byte — A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
            - `stringValue` string — A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
            - `mapValue` MapValue — A map value.
              - …
            - `integerValue` string, int64 — An integer value.
            - `doubleValue` number, double — A double value.
            - `nullValue` 'NULL_VALUE' — A null value.
            - `referenceValue` string — A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
        - `maximum` Value — A message that can hold any of the supported value types.
          - `timestampValue` string, google-datetime — A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
          - `pipelineValue` Pipeline — A Firestore query represented as an ordered list of operations / stages.
            - `stages` Stage[] — Required. Ordered list of stages to evaluate.
              - …
          - `booleanValue` boolean — A boolean value.
          - `geoPointValue` LatLng — An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges.
            - `latitude` number, double — The latitude in degrees. It must be in the range [-90.0, +90.0].
            - `longitude` number, double — The longitude in degrees. It must be in the range [-180.0, +180.0].
          - `functionValue` Function — Represents an unevaluated scalar expression. For example, the expression `like(user_name, "%alice%")` is represented as: ``` name: "like" args { field_reference: "user_name" } args { string_value: "%alice%" } ```
            - `name` string — Required. The name of the function to evaluate. **Requires:** * must be in snake case (lower case with underscore separator).
            - `args` Value[] — Optional. Ordered list of arguments the given function expects.
            - `options` object — Optional. Optional named arguments that certain functions may support.
          - `variableReferenceValue` string — Pointer to a variable defined elsewhere in a pipeline. Unlike `field_reference_value` which references a field within a document, this refers to a variable, defined in a separate namespace than the fields of a document.
          - `arrayValue` ArrayValue — An array value.
            - `values` Value[] — Values in the array.
          - `fieldReferenceValue` string — Value which references a field. This is considered relative (vs absolute) since it only refers to a field and not a field within a particular document. **Requires:** * Must follow field reference limitations. * Not allowed to be used when writing documents.
          - `bytesValue` string, byte — A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
          - `stringValue` string — A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
          - `mapValue` MapValue — A map value.
            - `fields` object — The map's fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
          - `integerValue` string, int64 — An integer value.
          - `doubleValue` number, double — A double value.
          - `nullValue` 'NULL_VALUE' — A null value.
          - `referenceValue` string — A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
        - `removeAllFromArray` ArrayValue — An array value.
          - `values` Value[] — Values in the array.
            - `timestampValue` string, google-datetime — A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
            - `pipelineValue` Pipeline — A Firestore query represented as an ordered list of operations / stages.
              - …
            - `booleanValue` boolean — A boolean value.
            - `geoPointValue` LatLng — An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges.
              - …
            - `functionValue` Function — Represents an unevaluated scalar expression. For example, the expression `like(user_name, "%alice%")` is represented as: ``` name: "like" args { field_reference: "user_name" } args { string_value: "%alice%" } ```
              - …
            - `variableReferenceValue` string — Pointer to a variable defined elsewhere in a pipeline. Unlike `field_reference_value` which references a field within a document, this refers to a variable, defined in a separate namespace than the fields of a document.
            - `arrayValue` ArrayValue — recursive
            - `fieldReferenceValue` string — Value which references a field. This is considered relative (vs absolute) since it only refers to a field and not a field within a particular document. **Requires:** * Must follow field reference limitations. * Not allowed to be used when writing documents.
            - `bytesValue` string, byte — A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
            - `stringValue` string — A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
            - `mapValue` MapValue — A map value.
              - …
            - `integerValue` string, int64 — An integer value.
            - `doubleValue` number, double — A double value.
            - `nullValue` 'NULL_VALUE' — A null value.
            - `referenceValue` string — A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
        - `increment` Value — A message that can hold any of the supported value types.
          - `timestampValue` string, google-datetime — A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
          - `pipelineValue` Pipeline — A Firestore query represented as an ordered list of operations / stages.
            - `stages` Stage[] — Required. Ordered list of stages to evaluate.
              - …
          - `booleanValue` boolean — A boolean value.
          - `geoPointValue` LatLng — An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges.
            - `latitude` number, double — The latitude in degrees. It must be in the range [-90.0, +90.0].
            - `longitude` number, double — The longitude in degrees. It must be in the range [-180.0, +180.0].
          - `functionValue` Function — Represents an unevaluated scalar expression. For example, the expression `like(user_name, "%alice%")` is represented as: ``` name: "like" args { field_reference: "user_name" } args { string_value: "%alice%" } ```
            - `name` string — Required. The name of the function to evaluate. **Requires:** * must be in snake case (lower case with underscore separator).
            - `args` Value[] — Optional. Ordered list of arguments the given function expects.
            - `options` object — Optional. Optional named arguments that certain functions may support.
          - `variableReferenceValue` string — Pointer to a variable defined elsewhere in a pipeline. Unlike `field_reference_value` which references a field within a document, this refers to a variable, defined in a separate namespace than the fields of a document.
          - `arrayValue` ArrayValue — An array value.
            - `values` Value[] — Values in the array.
          - `fieldReferenceValue` string — Value which references a field. This is considered relative (vs absolute) since it only refers to a field and not a field within a particular document. **Requires:** * Must follow field reference limitations. * Not allowed to be used when writing documents.
          - `bytesValue` string, byte — A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
          - `stringValue` string — A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
          - `mapValue` MapValue — A map value.
            - `fields` object — The map's fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
          - `integerValue` string, int64 — An integer value.
          - `doubleValue` number, double — A double value.
          - `nullValue` 'NULL_VALUE' — A null value.
          - `referenceValue` string — A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
    - `updateMask` DocumentMask — A set of field paths on a document. Used to restrict a get or update operation on a document to a subset of its fields. This is different from standard field masks, as this is always scoped to a Document, and takes in account the dynamic nature of Value.
      - `fieldPaths` string[] — The list of field paths in the mask. See Document.fields for a field path syntax reference.
    - `delete` string — A document name to delete. In the format: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
    - `update` Document — A Firestore document. Must not exceed 1 MiB - 4 bytes.
      - `createTime` string, google-datetime — Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
      - `updateTime` string, google-datetime — Output only. The time at which the document was last changed. This value is initially set to the `create_time` then increases monotonically with each change to the document. It can also be compared to values from other documents and the `read_time` of a query.
      - `fields` object — The document's fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The field names, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by a dot-delimited (`.`) string of segments. Each segment is either a simple field name (defined below) or a quoted field name. For example, the structured field `"foo" : { map_value: { "x&y" : { string_value: "hello" }}}` would be represented by the field path `` foo.`x&y` ``. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. A quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&y` `` represents `x&y` and `` `bak\`tik` `` represents `` bak`tik ``.
      - `name` string — The resource name of the document, for example `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
    - `updateTransforms` FieldTransform[] — The transforms to perform after update. This field can be set only when the operation is `update`. If present, this write is equivalent to performing `update` and `transform` to the same document atomically and in order.
      - `fieldPath` string — The path of the field. See Document.fields for the field path syntax reference.
      - `setToServerValue` 'SERVER_VALUE_UNSPECIFIED' | 'REQUEST_TIME' — Sets the field to the given server value.
      - `minimum` Value — A message that can hold any of the supported value types.
        - `timestampValue` string, google-datetime — A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
        - `pipelineValue` Pipeline — A Firestore query represented as an ordered list of operations / stages.
          - `stages` Stage[] — Required. Ordered list of stages to evaluate.
            - `name` string — Required. The name of the stage to evaluate. **Requires:** * must be in snake case (lower case with underscore separator).
            - `args` Value[] — Optional. Ordered list of arguments the given stage expects.
            - `options` object — Optional. Optional named arguments that certain functions may support.
        - `booleanValue` boolean — A boolean value.
        - `geoPointValue` LatLng — An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges.
          - `latitude` number, double — The latitude in degrees. It must be in the range [-90.0, +90.0].
          - `longitude` number, double — The longitude in degrees. It must be in the range [-180.0, +180.0].
        - `functionValue` Function — Represents an unevaluated scalar expression. For example, the expression `like(user_name, "%alice%")` is represented as: ``` name: "like" args { field_reference: "user_name" } args { string_value: "%alice%" } ```
          - `name` string — Required. The name of the function to evaluate. **Requires:** * must be in snake case (lower case with underscore separator).
          - `args` Value[] — Optional. Ordered list of arguments the given function expects.
          - `options` object — Optional. Optional named arguments that certain functions may support.
        - `variableReferenceValue` string — Pointer to a variable defined elsewhere in a pipeline. Unlike `field_reference_value` which references a field within a document, this refers to a variable, defined in a separate namespace than the fields of a document.
        - `arrayValue` ArrayValue — An array value.
          - `values` Value[] — Values in the array.
        - `fieldReferenceValue` string — Value which references a field. This is considered relative (vs absolute) since it only refers to a field and not a field within a particular document. **Requires:** * Must follow field reference limitations. * Not allowed to be used when writing documents.
        - `bytesValue` string, byte — A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
        - `stringValue` string — A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
        - `mapValue` MapValue — A map value.
          - `fields` object — The map's fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
        - `integerValue` string, int64 — An integer value.
        - `doubleValue` number, double — A double value.
        - `nullValue` 'NULL_VALUE' — A null value.
        - `referenceValue` string — A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
      - `appendMissingElements` ArrayValue — An array value.
        - `values` Value[] — Values in the array.
          - `timestampValue` string, google-datetime — A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
          - `pipelineValue` Pipeline — A Firestore query represented as an ordered list of operations / stages.
            - `stages` Stage[] — Required. Ordered list of stages to evaluate.
              - …
          - `booleanValue` boolean — A boolean value.
          - `geoPointValue` LatLng — An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges.
            - `latitude` number, double — The latitude in degrees. It must be in the range [-90.0, +90.0].
            - `longitude` number, double — The longitude in degrees. It must be in the range [-180.0, +180.0].
          - `functionValue` Function — Represents an unevaluated scalar expression. For example, the expression `like(user_name, "%alice%")` is represented as: ``` name: "like" args { field_reference: "user_name" } args { string_value: "%alice%" } ```
            - `name` string — Required. The name of the function to evaluate. **Requires:** * must be in snake case (lower case with underscore separator).
            - `args` Value[] — Optional. Ordered list of arguments the given function expects.
            - `options` object — Optional. Optional named arguments that certain functions may support.
          - `variableReferenceValue` string — Pointer to a variable defined elsewhere in a pipeline. Unlike `field_reference_value` which references a field within a document, this refers to a variable, defined in a separate namespace than the fields of a document.
          - `arrayValue` ArrayValue — recursive
          - `fieldReferenceValue` string — Value which references a field. This is considered relative (vs absolute) since it only refers to a field and not a field within a particular document. **Requires:** * Must follow field reference limitations. * Not allowed to be used when writing documents.
          - `bytesValue` string, byte — A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
          - `stringValue` string — A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
          - `mapValue` MapValue — A map value.
            - `fields` object — The map's fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
          - `integerValue` string, int64 — An integer value.
          - `doubleValue` number, double — A double value.
          - `nullValue` 'NULL_VALUE' — A null value.
          - `referenceValue` string — A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
      - `maximum` Value — A message that can hold any of the supported value types.
        - `timestampValue` string, google-datetime — A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
        - `pipelineValue` Pipeline — A Firestore query represented as an ordered list of operations / stages.
          - `stages` Stage[] — Required. Ordered list of stages to evaluate.
            - `name` string — Required. The name of the stage to evaluate. **Requires:** * must be in snake case (lower case with underscore separator).
            - `args` Value[] — Optional. Ordered list of arguments the given stage expects.
            - `options` object — Optional. Optional named arguments that certain functions may support.
        - `booleanValue` boolean — A boolean value.
        - `geoPointValue` LatLng — An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges.
          - `latitude` number, double — The latitude in degrees. It must be in the range [-90.0, +90.0].
          - `longitude` number, double — The longitude in degrees. It must be in the range [-180.0, +180.0].
        - `functionValue` Function — Represents an unevaluated scalar expression. For example, the expression `like(user_name, "%alice%")` is represented as: ``` name: "like" args { field_reference: "user_name" } args { string_value: "%alice%" } ```
          - `name` string — Required. The name of the function to evaluate. **Requires:** * must be in snake case (lower case with underscore separator).
          - `args` Value[] — Optional. Ordered list of arguments the given function expects.
          - `options` object — Optional. Optional named arguments that certain functions may support.
        - `variableReferenceValue` string — Pointer to a variable defined elsewhere in a pipeline. Unlike `field_reference_value` which references a field within a document, this refers to a variable, defined in a separate namespace than the fields of a document.
        - `arrayValue` ArrayValue — An array value.
          - `values` Value[] — Values in the array.
        - `fieldReferenceValue` string — Value which references a field. This is considered relative (vs absolute) since it only refers to a field and not a field within a particular document. **Requires:** * Must follow field reference limitations. * Not allowed to be used when writing documents.
        - `bytesValue` string, byte — A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
        - `stringValue` string — A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
        - `mapValue` MapValue — A map value.
          - `fields` object — The map's fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
        - `integerValue` string, int64 — An integer value.
        - `doubleValue` number, double — A double value.
        - `nullValue` 'NULL_VALUE' — A null value.
        - `referenceValue` string — A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
      - `removeAllFromArray` ArrayValue — An array value.
        - `values` Value[] — Values in the array.
          - `timestampValue` string, google-datetime — A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
          - `pipelineValue` Pipeline — A Firestore query represented as an ordered list of operations / stages.
            - `stages` Stage[] — Required. Ordered list of stages to evaluate.
              - …
          - `booleanValue` boolean — A boolean value.
          - `geoPointValue` LatLng — An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges.
            - `latitude` number, double — The latitude in degrees. It must be in the range [-90.0, +90.0].
            - `longitude` number, double — The longitude in degrees. It must be in the range [-180.0, +180.0].
          - `functionValue` Function — Represents an unevaluated scalar expression. For example, the expression `like(user_name, "%alice%")` is represented as: ``` name: "like" args { field_reference: "user_name" } args { string_value: "%alice%" } ```
            - `name` string — Required. The name of the function to evaluate. **Requires:** * must be in snake case (lower case with underscore separator).
            - `args` Value[] — Optional. Ordered list of arguments the given function expects.
            - `options` object — Optional. Optional named arguments that certain functions may support.
          - `variableReferenceValue` string — Pointer to a variable defined elsewhere in a pipeline. Unlike `field_reference_value` which references a field within a document, this refers to a variable, defined in a separate namespace than the fields of a document.
          - `arrayValue` ArrayValue — recursive
          - `fieldReferenceValue` string — Value which references a field. This is considered relative (vs absolute) since it only refers to a field and not a field within a particular document. **Requires:** * Must follow field reference limitations. * Not allowed to be used when writing documents.
          - `bytesValue` string, byte — A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
          - `stringValue` string — A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
          - `mapValue` MapValue — A map value.
            - `fields` object — The map's fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
          - `integerValue` string, int64 — An integer value.
          - `doubleValue` number, double — A double value.
          - `nullValue` 'NULL_VALUE' — A null value.
          - `referenceValue` string — A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
      - `increment` Value — A message that can hold any of the supported value types.
        - `timestampValue` string, google-datetime — A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
        - `pipelineValue` Pipeline — A Firestore query represented as an ordered list of operations / stages.
          - `stages` Stage[] — Required. Ordered list of stages to evaluate.
            - `name` string — Required. The name of the stage to evaluate. **Requires:** * must be in snake case (lower case with underscore separator).
            - `args` Value[] — Optional. Ordered list of arguments the given stage expects.
            - `options` object — Optional. Optional named arguments that certain functions may support.
        - `booleanValue` boolean — A boolean value.
        - `geoPointValue` LatLng — An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges.
          - `latitude` number, double — The latitude in degrees. It must be in the range [-90.0, +90.0].
          - `longitude` number, double — The longitude in degrees. It must be in the range [-180.0, +180.0].
        - `functionValue` Function — Represents an unevaluated scalar expression. For example, the expression `like(user_name, "%alice%")` is represented as: ``` name: "like" args { field_reference: "user_name" } args { string_value: "%alice%" } ```
          - `name` string — Required. The name of the function to evaluate. **Requires:** * must be in snake case (lower case with underscore separator).
          - `args` Value[] — Optional. Ordered list of arguments the given function expects.
          - `options` object — Optional. Optional named arguments that certain functions may support.
        - `variableReferenceValue` string — Pointer to a variable defined elsewhere in a pipeline. Unlike `field_reference_value` which references a field within a document, this refers to a variable, defined in a separate namespace than the fields of a document.
        - `arrayValue` ArrayValue — An array value.
          - `values` Value[] — Values in the array.
        - `fieldReferenceValue` string — Value which references a field. This is considered relative (vs absolute) since it only refers to a field and not a field within a particular document. **Requires:** * Must follow field reference limitations. * Not allowed to be used when writing documents.
        - `bytesValue` string, byte — A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
        - `stringValue` string — A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
        - `mapValue` MapValue — A map value.
          - `fields` object — The map's fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
        - `integerValue` string, int64 — An integer value.
        - `doubleValue` number, double — A double value.
        - `nullValue` 'NULL_VALUE' — A null value.
        - `referenceValue` string — A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
  - `requestOptions` RequestOptions — Options for a server request.
    - `requestTags` string[] — Optional. The request tags for the request.

## Response `200`

Successful response

---

[API](https://skmtc.net/google/apis/firestore.md) · [All operations](https://skmtc.net/google/apis/firestore/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/google/firestore/versions/11bc07a83431/schema)
