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 nesta gravação.

Esse campo só pode ser definido quando a operação é update. Se a máscara não estiver definida para um update e o documento existir, todos os dados existentes 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 não presentes 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.

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

currentDocument

object (Precondition)

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

A gravação falhará se este valor for definido e não for 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 a ser gravado.

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.

Transformação de documentos

Uma 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

O caminho do campo. Consulte Document.fields para conferir 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 para o valor do servidor especificado.

increment

object (Value)

Adiciona o valor informado 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 forem duplicados, 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 positivos/negativos, o campo será resolvido para o número inteiro positivo/negativo de maior magnitude.

maximum

object (Value)

Define o campo para o máximo de seu valor atual e o valor informado.

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 em que o campo e o valor de entrada forem de tipos mistos (ou seja, um é um número inteiro e 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 armazenado em zero 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 de seu valor atual e o valor informado.

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 em que o campo e o valor de entrada forem de tipos mistos (ou seja, um é um número inteiro e 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 armazenado em zero 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 na 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 tiver vários valores equivalentes, apenas 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 ainda não existir, ele será definido como a matriz vazia.

Números equivalentes dos diferentes tipos (por exemplo, 3L e 3,0) são considerados iguais ao decidir se um elemento deve 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. Não use esse valor.
REQUEST_TIME O horário 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 receberão o mesmo carimbo de data/hora do servidor.