Method: googleapis.firestore.v1.projects.databases.documents.patch

Updates or inserts a document.

Every document in Cloud Firestore is uniquely identified by its location within the database. Documents live in collections and the names of documents within a collection are unique. Note that {document_path} refers to the fully specified document path and includes the collection ID. For more information, see Cloud Firestore data model and the Cloud Firestore connector sample.

Arguments

Parameters
name

string

Required. The resource name of the document, for example projects/{project_id}/databases/{database_id}/documents/{document_path}.

currentDocument.exists

boolean

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

currentDocument.updateTime

string (Timestamp format)

When set, the target document must exist and have been last updated at that time.

mask.fieldPaths

string

The list of field paths in the mask. See Document.fields for a field path syntax reference.

updateMask.fieldPaths

string

The list of field paths in the mask. See Document.fields for a field path syntax reference.

body

object (Document)

Required.

Raised exceptions

Exceptions
ConnectionError In case of a network problem (such as DNS failure or refused connection).
HttpError If the response status is >= 400 (excluding 429 and 503).
TimeoutError If a long-running operation takes longer to finish than the specified timeout limit.
TypeError If an operation or function receives an argument of the wrong type.
ValueError If an operation or function receives an argument of the right type but an inappropriate value. For example, a negative timeout.

Response

If successful, the response contains an instance of Document.

Subworkflow snippet

Some fields might be optional or required. To identify required fields, refer to the API documentation.

YAML

- patch:
    call: googleapis.firestore.v1.projects.databases.documents.patch
    args:
        name: ...
        currentDocument:
            exists: ...
            updateTime: ...
        mask:
            fieldPaths: ...
        updateMask:
            fieldPaths: ...
        body:
            fields: ...
            name: ...
    result: patchResult

JSON

[
  {
    "patch": {
      "call": "googleapis.firestore.v1.projects.databases.documents.patch",
      "args": {
        "name": "...",
        "currentDocument": {
          "exists": "...",
          "updateTime": "..."
        },
        "mask": {
          "fieldPaths": "..."
        },
        "updateMask": {
          "fieldPaths": "..."
        },
        "body": {
          "fields": "...",
          "name": "..."
        }
      },
      "result": "patchResult"
    }
  }
]