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

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

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

Streams batches of document updates and deletes, in order. This method is only available via gRPC or WebChannel (not REST).

## Path parameters

- `database` string, required

## Request body

- WriteRequest — The request for Firestore.Write. The first request creates a stream, or resumes an existing one from a token. When creating a new stream, the server replies with a response containing only an ID and a token, to use in the next request. When resuming a stream, the server first streams any responses later than the given token, then a response containing only an up-to-date token, to use in the next request.
  - `streamId` string — The ID of the write stream to resume. This may only be set in the first message. When left empty, a new write stream will be created.
  - `streamToken` string, byte — A stream token that was previously sent by the server. The client should set this field to the token from the most recent WriteResponse it has received. This acknowledges that the client has received responses up to this token. After sending this token, earlier tokens may not be used anymore. The server may close the stream if there are too many unacknowledged responses. Leave this field unset when creating a new stream. To resume a stream at a specific point, set this field and the `stream_id` field. Leave this field unset when creating a new stream.
  - `labels` object — Labels associated with this write request.
  - `writes` Write[] — The writes to apply. Always executed atomically and in order. This must be empty on the first request. This may be empty on the last request. This must not be empty on all other requests.
    - `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)
