Write

Uma gravação em um documento.

Representação JSON
{
  "updateMask": {
    object (DocumentMask)
  },
  "updateTransforms": [
    {
      object (FieldTransform)
    }
  ],
  "currentDocument": {
    object (Precondition)
  },

  // Union field operation can be only one of the following:
  "update": {
    object (Document)
  },
  "delete": string,
  "transform": {
    object (DocumentTransform)
  }
  // End of list of possible types for union field operation.
}
Campos
updateMask

object (DocumentMask)

Os campos a serem atualizados nessa gravação.

Este campo só pode ser definido quando a operação é update. Se a máscara não for definida para uma update e o documento existir, todos os dados atuais serão substituídos. Se a máscara estiver definida e o documento no servidor tiver campos não cobertos pela máscara, eles não serão alterados. Os campos referenciados na máscara, mas ausentes no documento de entrada, são excluídos do documento no servidor. Os caminhos de campo dessa máscara não podem conter um nome de campo reservado.

updateTransforms[]

object (FieldTransform)

As transformações a serem executadas após a atualização.

Este campo só pode ser definido quando a operação é update. Se presente, essa gravação é equivalente a executar update e transform no mesmo documento atomicamente e em ordem.

currentDocument

object (Precondition)

Uma condição prévia opcional no documento.

A gravação falhará se isso for definido e não atendido pelo documento de destino.

Campo de união operation. A operação a ser executada. operation pode ser apenas de um dos tipos a seguir:
update

object (Document)

Um documento para gravar.

delete

string

Um nome de documento a ser excluído. Use o formato: projects/{projectId}/databases/{databaseId}/documents/{document_path}.

transform

object (DocumentTransform)

Aplica uma transformação a um documento.

DocumentTransform

A transformação de um documento.

Representação JSON
{
  "document": string,
  "fieldTransforms": [
    {
      object (FieldTransform)
    }
  ]
}
Campos
document

string

O nome do documento a ser transformado.

fieldTransforms[]

object (FieldTransform)

A lista de transformações a serem aplicadas aos campos do documento, em ordem. Este campo não pode ficar vazio.

FieldTransform

Uma transformação de um campo do documento.

Representação JSON
{
  "fieldPath": string,

  // Union field transform_type can be only one of the following:
  "setToServerValue": enum (ServerValue),
  "increment": {
    object (Value)
  },
  "maximum": {
    object (Value)
  },
  "minimum": {
    object (Value)
  },
  "appendMissingElements": {
    object (ArrayValue)
  },
  "removeAllFromArray": {
    object (ArrayValue)
  }
  // End of list of possible types for union field transform_type.
}
Campos
fieldPath

string

Caminho do campo. Consulte Document.fields para ver a referência de sintaxe do caminho do campo.

Campo de união transform_type. A transformação a ser aplicada no campo. transform_type pode ser apenas de um dos tipos a seguir:
setToServerValue

enum (ServerValue)

Define o campo como o valor do servidor fornecido.

increment

object (Value)

Adiciona o valor fornecido ao valor atual do campo.

Precisa ser um número inteiro ou um valor duplo. Se o campo não for um número inteiro ou duplo, ou se o campo ainda não existir, a transformação definirá o campo com o valor fornecido. Se um dos valores fornecidos ou o valor do campo atual for duplo, ambos os valores serão interpretados como duplos. A aritmética dupla e a representação de valores duplos seguem a semântica IEEE 754. Se houver estouro de números inteiros positivo/negativo, o campo será resolvido para o maior número inteiro positivo/negativo de magnitude.

maximum

object (Value)

Define o campo como o máximo de seu valor atual e o valor fornecido.

Precisa ser um número inteiro ou um valor duplo. Se o campo não for um número inteiro ou duplo, ou se o campo ainda não existir, a transformação definirá o campo com o valor fornecido. Se uma operação máxima for aplicada quando o campo e o valor de entrada forem de tipos mistos (ou seja, um é um número inteiro e o outro é duplo), o campo assumirá o tipo do operando maior. Se os operandos forem equivalentes (por exemplo, 3 e 3,0), o campo não será alterado. 0, 0,0 e -0,0 são todos zero. O máximo de um valor zero armazenado e um valor de entrada zero é sempre o valor armazenado. O máximo de qualquer valor numérico x e NaN é NaN.

minimum

object (Value)

Define o campo para o mínimo entre seu valor atual e o valor fornecido.

Precisa ser um número inteiro ou um valor duplo. Se o campo não for um número inteiro ou duplo, ou se o campo ainda não existir, a transformação definirá o campo como o valor de entrada. Se uma operação mínima for aplicada quando o campo e o valor de entrada forem de tipos mistos (ou seja, um é um número inteiro e o outro é duplo), o campo assumirá o tipo do operando menor. Se os operandos forem equivalentes (por exemplo, 3 e 3,0), o campo não será alterado. 0, 0,0 e -0,0 são todos zero. O mínimo de um valor zero armazenado e um valor de entrada zero é sempre o valor armazenado. O mínimo de qualquer valor numérico x e NaN é NaN.

appendMissingElements

object (ArrayValue)

Anexe os elementos fornecidos em ordem se eles ainda não estiverem presentes no valor do campo atual. Se o campo não for uma matriz ou se ainda não existir, ele será definido primeiro como a matriz vazia.

Números equivalentes de tipos diferentes (por exemplo, 3L e 3,0) são considerados iguais ao verificar se um valor está ausente. NaN é igual a NaN e Nulo é igual a Nulo. Se a entrada contiver vários valores equivalentes, somente o primeiro será considerado.

O transform_result correspondente será o valor nulo.

removeAllFromArray

object (ArrayValue)

Remova todos os elementos fornecidos da matriz no campo. Se o campo não for uma matriz ou se ainda não existir, ele será definido como a matriz vazia.

Os números equivalentes dos diferentes tipos (por exemplo, 3L e 3.0) são considerados iguais ao decidir se um elemento precisa ser removido. NaN é igual a NaN e Nulo é igual a Nulo. Isso removerá todos os valores equivalentes se houver cópias.

O transform_result correspondente será o valor nulo.

ServerValue

Um valor calculado pelo servidor.

Enums
SERVER_VALUE_UNSPECIFIED Não especificado. Esse valor não pode ser usado.
REQUEST_TIME A hora em que o servidor processou a solicitação, com precisão de milissegundos. Se usado em vários campos (documentos iguais ou diferentes) em uma transação, todos os campos terão o mesmo carimbo de data/hora do servidor.