Get desktop application:
View/edit binary Protocol Buffers messages
The Cloud Firestore service. This service exposes several types of comparable timestamps: * `create_time` - The time at which a document was created. Changes only when a document is deleted, then re-created. Increases in a strict monotonic fashion. * `update_time` - The time at which a document was last updated. Changes every time a document is modified. Does not change when a write results in no modifications. Increases in a strict monotonic fashion. * `read_time` - The time at which a particular state was observed. Used to denote a consistent snapshot of the database or the time at which a Document was observed to not exist. * `commit_time` - The time at which the writes in a transaction were committed. Any read with an equal or greater `read_time` is guaranteed to see the effects of the transaction.
Gets a single document.
The request for [Firestore.GetDocument][google.firestore.v1beta1.Firestore.GetDocument].
The resource name of the Document to get. In the format: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
The fields to return. If not set, returns all fields. If the document has a field that is not present in this mask, that field will not be returned in the response.
The consistency mode for this transaction. If not set, defaults to strong consistency.
Reads the document in a transaction.
Reads the version of the document at the given time. This may not be older than 60 seconds.
Lists documents.
The request for [Firestore.ListDocuments][google.firestore.v1beta1.Firestore.ListDocuments].
The parent resource name. In the format: `projects/{project_id}/databases/{database_id}/documents` or `projects/{project_id}/databases/{database_id}/documents/{document_path}`. For example: `projects/my-project/databases/my-database/documents` or `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom`
The collection ID, relative to `parent`, to list. For example: `chatrooms` or `messages`.
The maximum number of documents to return.
The `next_page_token` value returned from a previous List request, if any.
The order to sort results by. For example: `priority desc, name`.
The fields to return. If not set, returns all fields. If a document has a field that is not present in this mask, that field will not be returned in the response.
The consistency mode for this transaction. If not set, defaults to strong consistency.
Reads documents in a transaction.
Reads documents as they were at the given time. This may not be older than 60 seconds.
If the list should show missing documents. A missing document is a document that does not exist but has sub-documents. These documents will be returned with a key but will not have fields, [Document.create_time][google.firestore.v1beta1.Document.create_time], or [Document.update_time][google.firestore.v1beta1.Document.update_time] set. Requests with `show_missing` may not specify `where` or `order_by`.
The response for [Firestore.ListDocuments][google.firestore.v1beta1.Firestore.ListDocuments].
The Documents found.
The next page token.
Creates a new document.
The request for [Firestore.CreateDocument][google.firestore.v1beta1.Firestore.CreateDocument].
The parent resource. For example: `projects/{project_id}/databases/{database_id}/documents` or `projects/{project_id}/databases/{database_id}/documents/chatrooms/{chatroom_id}`
The collection ID, relative to `parent`, to list. For example: `chatrooms`.
The client-assigned document ID to use for this document. Optional. If not specified, an ID will be assigned by the service.
The document to create. `name` must not be set.
The fields to return. If not set, returns all fields. If the document has a field that is not present in this mask, that field will not be returned in the response.
Updates or inserts a document.
The request for [Firestore.UpdateDocument][google.firestore.v1beta1.Firestore.UpdateDocument].
The updated document. Creates the document if it does not already exist.
The fields to update. None of the field paths in the mask may contain a reserved name. If the document exists on the server and has fields not referenced in the mask, they are left unchanged. Fields referenced in the mask, but not present in the input document, are deleted from the document on the server.
The fields to return. If not set, returns all fields. If the document has a field that is not present in this mask, that field will not be returned in the response.
An optional precondition on the document. The request will fail if this is set and not met by the target document.
Deletes a document.
The request for [Firestore.DeleteDocument][google.firestore.v1beta1.Firestore.DeleteDocument].
The resource name of the Document to delete. In the format: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
An optional precondition on the document. The request will fail if this is set and not met by the target document.
Gets multiple documents. Documents returned by this method are not guaranteed to be returned in the same order that they were requested.
The request for [Firestore.BatchGetDocuments][google.firestore.v1beta1.Firestore.BatchGetDocuments].
The database name. In the format: `projects/{project_id}/databases/{database_id}`.
The names of the documents to retrieve. In the format: `projects/{project_id}/databases/{database_id}/documents/{document_path}`. The request will fail if any of the document is not a child resource of the given `database`. Duplicate names will be elided.
The fields to return. If not set, returns all fields. If a document has a field that is not present in this mask, that field will not be returned in the response.
The consistency mode for this transaction. If not set, defaults to strong consistency.
Reads documents in a transaction.
Starts a new transaction and reads the documents. Defaults to a read-only transaction. The new transaction ID will be returned as the first response in the stream.
Reads documents as they were at the given time. This may not be older than 60 seconds.
The streamed response for [Firestore.BatchGetDocuments][google.firestore.v1beta1.Firestore.BatchGetDocuments].
A single result. This can be empty if the server is just returning a transaction.
A document that was requested.
A document name that was requested but does not exist. In the format: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
The transaction that was started as part of this request. Will only be set in the first response, and only if [BatchGetDocumentsRequest.new_transaction][google.firestore.v1beta1.BatchGetDocumentsRequest.new_transaction] was set in the request.
The time at which the document was read. This may be monotically increasing, in this case the previous documents in the result stream are guaranteed not to have changed between their read_time and this one.
Starts a new transaction.
The request for [Firestore.BeginTransaction][google.firestore.v1beta1.Firestore.BeginTransaction].
The database name. In the format: `projects/{project_id}/databases/{database_id}`.
The options for the transaction. Defaults to a read-write transaction.
The response for [Firestore.BeginTransaction][google.firestore.v1beta1.Firestore.BeginTransaction].
The transaction that was started.
Commits a transaction, while optionally updating documents.
The request for [Firestore.Commit][google.firestore.v1beta1.Firestore.Commit].
The database name. In the format: `projects/{project_id}/databases/{database_id}`.
The writes to apply. Always executed atomically and in order.
If set, applies all writes in this transaction, and commits it.
The response for [Firestore.Commit][google.firestore.v1beta1.Firestore.Commit].
The result of applying the writes. This i-th write result corresponds to the i-th write in the request.
The time at which the commit occurred.
Rolls back a transaction.
The request for [Firestore.Rollback][google.firestore.v1beta1.Firestore.Rollback].
The database name. In the format: `projects/{project_id}/databases/{database_id}`.
The transaction to roll back.
Runs a query.
The request for [Firestore.RunQuery][google.firestore.v1beta1.Firestore.RunQuery].
The parent resource name. In the format: `projects/{project_id}/databases/{database_id}/documents` or `projects/{project_id}/databases/{database_id}/documents/{document_path}`. For example: `projects/my-project/databases/my-database/documents` or `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom`
The query to run.
A structured query.
The consistency mode for this transaction. If not set, defaults to strong consistency.
Reads documents in a transaction.
Starts a new transaction and reads the documents. Defaults to a read-only transaction. The new transaction ID will be returned as the first response in the stream.
Reads documents as they were at the given time. This may not be older than 60 seconds.
The response for [Firestore.RunQuery][google.firestore.v1beta1.Firestore.RunQuery].
The transaction that was started as part of this request. Can only be set in the first response, and only if [RunQueryRequest.new_transaction][google.firestore.v1beta1.RunQueryRequest.new_transaction] was set in the request. If set, no other fields will be set in this response.
A query result. Not set when reporting partial progress.
The time at which the document was read. This may be monotonically increasing; in this case, the previous documents in the result stream are guaranteed not to have changed between their `read_time` and this one. If the query returns no results, a response with `read_time` and no `document` will be sent, and this represents the time at which the query was run.
The number of results that have been skipped due to an offset between the last response and the current response.
Streams batches of document updates and deletes, in order.
The request for [Firestore.Write][google.firestore.v1beta1.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.
The database name. In the format: `projects/{project_id}/databases/{database_id}`. This is only required in the first message.
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.
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.
A stream token that was previously sent by the server. The client should set this field to the token from the most recent [WriteResponse][google.firestore.v1beta1.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 associated with this write request.
The response for [Firestore.Write][google.firestore.v1beta1.Firestore.Write].
The ID of the stream. Only set on the first message, when a new stream was created.
A token that represents the position of this response in the stream. This can be used by a client to resume the stream at this point. This field is always set.
The result of applying the writes. This i-th write result corresponds to the i-th write in the request.
The time at which the commit occurred.
Listens to changes.
A request for [Firestore.Listen][google.firestore.v1beta1.Firestore.Listen]
The database name. In the format: `projects/{project_id}/databases/{database_id}`.
The supported target changes.
A target to add to this stream.
The ID of a target to remove from this stream.
Labels associated with this target change.
The response for [Firestore.Listen][google.firestore.v1beta1.Firestore.Listen].
The supported responses.
Targets have changed.
A [Document][google.firestore.v1beta1.Document] has changed.
A [Document][google.firestore.v1beta1.Document] has been deleted.
A [Document][google.firestore.v1beta1.Document] has been removed from a target (because it is no longer relevant to that target).
A filter to apply to the set of documents previously returned for the given target. Returned when documents may have been removed from the given target, but the exact documents are unknown.
Lists all the collection IDs underneath a document.
The request for [Firestore.ListCollectionIds][google.firestore.v1beta1.Firestore.ListCollectionIds].
The parent document. In the format: `projects/{project_id}/databases/{database_id}/documents/{document_path}`. For example: `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom`
The maximum number of results to return.
A page token. Must be a value from [ListCollectionIdsResponse][google.firestore.v1beta1.ListCollectionIdsResponse].
The response from [Firestore.ListCollectionIds][google.firestore.v1beta1.Firestore.ListCollectionIds].
The collection ids.
A page token that may be used to continue the list.
An array value.
Used in:
,Values in the array.
A position in a query result set.
Used in:
The values that represent a position, in the order they appear in the order by clause of a query. Can contain fewer values than specified in the order by clause.
If the position is just before or just after the given values, relative to the sort order defined by the query.
A Firestore document. Must not exceed 1 MiB - 4 bytes.
Used as response type in: Firestore.CreateDocument, Firestore.GetDocument, Firestore.UpdateDocument
Used as field type in:
, , , , , ,The resource name of the document, for example `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
The document's fields. The map keys represent field names. 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`. 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. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `"foo" : { map_value: { "x&y" : { string_value: "hello" }}}` would be represented by the field path `foo.x&y`. Within a field path, 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 ``.
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.
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.
A [Document][google.firestore.v1beta1.Document] has changed. May be the result of multiple [writes][google.firestore.v1beta1.Write], including deletes, that ultimately resulted in a new value for the [Document][google.firestore.v1beta1.Document]. Multiple [DocumentChange][google.firestore.v1beta1.DocumentChange] messages may be returned for the same logical change, if multiple targets are affected.
Used in:
The new state of the [Document][google.firestore.v1beta1.Document]. If `mask` is set, contains only fields that were updated or added.
A set of target IDs of targets that match this document.
A set of target IDs for targets that no longer match this document.
A [Document][google.firestore.v1beta1.Document] has been deleted. May be the result of multiple [writes][google.firestore.v1beta1.Write], including updates, the last of which deleted the [Document][google.firestore.v1beta1.Document]. Multiple [DocumentDelete][google.firestore.v1beta1.DocumentDelete] messages may be returned for the same logical delete, if multiple targets are affected.
Used in:
The resource name of the [Document][google.firestore.v1beta1.Document] that was deleted.
A set of target IDs for targets that previously matched this entity.
The read timestamp at which the delete was observed. Greater or equal to the `commit_time` of the delete.
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][google.firestore.v1beta1.Document], and takes in account the dynamic nature of [Value][google.firestore.v1beta1.Value].
Used in:
, , , , ,The list of field paths in the mask. See [Document.fields][google.firestore.v1beta1.Document.fields] for a field path syntax reference.
A [Document][google.firestore.v1beta1.Document] has been removed from the view of the targets. Sent if the document is no longer relevant to a target and is out of view. Can be sent instead of a DocumentDelete or a DocumentChange if the server can not send the new value of the document. Multiple [DocumentRemove][google.firestore.v1beta1.DocumentRemove] messages may be returned for the same logical write or delete, if multiple targets are affected.
Used in:
The resource name of the [Document][google.firestore.v1beta1.Document] that has gone out of view.
A set of target IDs for targets that previously matched this document.
The read timestamp at which the remove was observed. Greater or equal to the `commit_time` of the change/delete/remove.
A transformation of a document.
Used in:
The name of the document to transform.
The list of transformations to apply to the fields of the document, in order. This must not be empty.
A transformation of a field of the document.
Used in:
The path of the field. See [Document.fields][google.firestore.v1beta1.Document.fields] for the field path syntax reference.
The transformation to apply on the field.
Sets the field to the given server value.
Adds the given value to the field's current value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If either of the given value or the current field value are doubles, both values will be interpreted as doubles. Double arithmetic and representation of double values follow IEEE 754 semantics. If there is positive/negative integer overflow, the field is resolved to the largest magnitude positive/negative integer.
Sets the field to the maximum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If a maximum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the larger operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The maximum of a zero stored value and zero input value is always the stored value. The maximum of any numeric value x and NaN is NaN.
Sets the field to the minimum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the input value. If a minimum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the smaller operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The minimum of a zero stored value and zero input value is always the stored value. The minimum of any numeric value x and NaN is NaN.
Append the given elements in order if they are not already present in the current field value. If the field is not an array, or if the field does not yet exist, it is first set to the empty array. Equivalent numbers of different types (e.g. 3L and 3.0) are considered equal when checking if a value is missing. NaN is equal to NaN, and Null is equal to Null. If the input contains multiple equivalent values, only the first will be considered. The corresponding transform_result will be the null value.
Remove all of the given elements from the array in the field. If the field is not an array, or if the field does not yet exist, it is set to the empty array. Equivalent numbers of the different types (e.g. 3L and 3.0) are considered equal when deciding whether an element should be removed. NaN is equal to NaN, and Null is equal to Null. This will remove all equivalent values if there are duplicates. The corresponding transform_result will be the null value.
A value that is calculated by the server.
Used in:
Unspecified. This value must not be used.
The time at which the server processed the request, with millisecond precision.
A digest of all the documents that match a given target.
Used in:
The target ID to which this filter applies.
The total count of documents that match [target_id][google.firestore.v1beta1.ExistenceFilter.target_id]. If different from the count of documents in the client that match, the client must manually determine which documents no longer match the target.
A map value.
Used in:
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.
A precondition on a document, used for conditional operations.
Used in:
, ,The type of precondition.
When set to `true`, the target document must exist. When set to `false`, the target document must not exist.
When set, the target document must exist and have been last updated at that time.
A Firestore query.
Used in:
,The projection to return.
The collections to query.
The filter to apply.
The order to apply to the query results. Firestore guarantees a stable ordering through the following rules: * Any field required to appear in `order_by`, that is not already specified in `order_by`, is appended to the order in field name order by default. * If an order on `__name__` is not specified, it is appended by default. Fields are appended with the same sort direction as the last order specified, or 'ASCENDING' if no order was specified. For example: * `SELECT * FROM Foo ORDER BY A` becomes `SELECT * FROM Foo ORDER BY A, __name__` * `SELECT * FROM Foo ORDER BY A DESC` becomes `SELECT * FROM Foo ORDER BY A DESC, __name__ DESC` * `SELECT * FROM Foo WHERE A > 1` becomes `SELECT * FROM Foo WHERE A > 1 ORDER BY A, __name__`
A starting point for the query results.
A end point for the query results.
The number of results to skip. Applies before limit, but after all other constraints. Must be >= 0 if specified.
The maximum number of results to return. Applies after all other constraints. Must be >= 0 if specified.
A selection of a collection, such as `messages as m1`.
Used in:
The collection ID. When set, selects only collections with this ID.
When false, selects only collections that are immediate children of the `parent` specified in the containing `RunQueryRequest`. When true, selects all descendant collections.
A filter that merges multiple other filters using the given operator.
Used in:
The operator for combining multiple filters.
The list of filters to combine. Must contain at least one filter.
A composite filter operator.
Used in:
Unspecified. This value must not be used.
The results are required to satisfy each of the combined filters.
A sort direction.
Used in:
Unspecified.
Ascending.
Descending.
A filter on a specific field.
Used in:
The field to filter by.
The operator to filter by.
The value to compare to.
A field filter operator.
Used in:
Unspecified. This value must not be used.
Less than. Requires that the field come first in `order_by`.
Less than or equal. Requires that the field come first in `order_by`.
Greater than. Requires that the field come first in `order_by`.
Greater than or equal. Requires that the field come first in `order_by`.
Equal.
Contains. Requires that the field is an array.
In. Requires that `value` is a non-empty ArrayValue with at most 10 values.
Contains any. Requires that the field is an array and `value` is a non-empty ArrayValue with at most 10 values.
A reference to a field, such as `max(messages.time) as max_time`.
Used in:
, , ,A filter.
Used in:
,The type of filter.
A composite filter.
A filter on a document field.
A filter that takes exactly one argument.
An order on a field.
Used in:
The field to order by.
The direction to order by. Defaults to `ASCENDING`.
The projection of document's fields to return.
Used in:
The fields to return. If empty, all fields are returned. To only return the name of the document, use `['__name__']`.
A filter with a single operand.
Used in:
The unary operator to apply.
The argument to the filter.
The field to which to apply the operator.
A unary operator.
Used in:
Unspecified. This value must not be used.
Test if a field is equal to NaN.
Test if an expression evaluates to Null.
A specification of a set of documents to listen to.
Used in:
The type of target to listen to.
A target specified by a query.
A target specified by a set of document names.
When to start listening. If not specified, all matching Documents are returned before any subsequent changes.
A resume token from a prior [TargetChange][google.firestore.v1beta1.TargetChange] for an identical target. Using a resume token with a different target is unsupported and may fail.
Start listening after a specific `read_time`. The client must know the state of matching documents at this time.
The target ID that identifies the target on the stream. Must be a positive number and non-zero.
If the target should be removed once it is current and consistent.
A target specified by a set of documents names.
Used in:
The names of the documents to retrieve. In the format: `projects/{project_id}/databases/{database_id}/documents/{document_path}`. The request will fail if any of the document is not a child resource of the given `database`. Duplicate names will be elided.
A target specified by a query.
Used in:
The parent resource name. In the format: `projects/{project_id}/databases/{database_id}/documents` or `projects/{project_id}/databases/{database_id}/documents/{document_path}`. For example: `projects/my-project/databases/my-database/documents` or `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom`
The query to run.
A structured query.
Targets being watched have changed.
Used in:
The type of change that occurred.
The target IDs of targets that have changed. If empty, the change applies to all targets. The order of the target IDs is not defined.
The error that resulted in this change, if applicable.
A token that can be used to resume the stream for the given `target_ids`, or all targets if `target_ids` is empty. Not set on every target change.
The consistent `read_time` for the given `target_ids` (omitted when the target_ids are not at a consistent snapshot). The stream is guaranteed to send a `read_time` with `target_ids` empty whenever the entire stream reaches a new consistent snapshot. ADD, CURRENT, and RESET messages are guaranteed to (eventually) result in a new consistent snapshot (while NO_CHANGE and REMOVE messages are not). For a given stream, `read_time` is guaranteed to be monotonically increasing.
The type of change.
Used in:
No change has occurred. Used only to send an updated `resume_token`.
The targets have been added.
The targets have been removed.
The targets reflect all changes committed before the targets were added to the stream. This will be sent after or with a `read_time` that is greater than or equal to the time at which the targets were added. Listeners can wait for this change if read-after-write semantics are desired.
The targets have been reset, and a new initial state for the targets will be returned in subsequent changes. After the initial state is complete, `CURRENT` will be returned even if the target was previously indicated to be `CURRENT`.
Options for creating a new transaction.
Used in:
, ,The mode of the transaction.
The transaction can only be used for read operations.
The transaction can be used for both read and write operations.
Options for a transaction that can only be used to read documents.
Used in:
The consistency mode for this transaction. If not set, defaults to strong consistency.
Reads documents at the given time. This may not be older than 60 seconds.
Options for a transaction that can be used to read and write documents.
Used in:
An optional transaction to retry.
A message that can hold any of the supported value types.
Used in:
, , , , , ,Must have a value set.
A null value.
A boolean value.
An integer value.
A double value.
A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
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.
A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
A geo point value representing a point on the surface of Earth.
An array value. Cannot directly contain another array value, though can contain an map which contains another array.
A map value.
A write on a document.
Used in:
,The operation to execute.
A document to write.
A document name to delete. In the format: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
Applies a transformation to a document. At most one `transform` per document is allowed in a given request. An `update` cannot follow a `transform` on the same document in a given request.
The fields to update in this write. This field can be set only when the operation is `update`. If the mask is not set for an `update` and the document exists, any existing data will be overwritten. If the mask is set and the document on the server has fields not covered by the mask, they are left unchanged. Fields referenced in the mask, but not present in the input document, are deleted from the document on the server. The field paths in this mask must not contain a reserved field name.
An optional precondition on the document. The write will fail if this is set and not met by the target document.
The result of applying a write.
Used in:
,The last update time of the document after applying the write. Not set after a `delete`. If the write did not actually change the document, this will be the previous update_time.
The results of applying each [DocumentTransform.FieldTransform][google.firestore.v1beta1.DocumentTransform.FieldTransform], in the same order.