Write

Una escritura en un documento.

Representación 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)

Los campos que se actualizarán en esta escritura.

Este campo solo se puede configurar cuando la operación es update. Si no se configura la máscara para una update y el documento existe, se reemplazarán los datos existentes. Si la máscara está configurada y el documento en el servidor tiene campos que no están cubiertos por la máscara, no se modifican. Los campos a los que se hace referencia en la máscara, pero que no están presentes en el documento de entrada, se borran del documento en el servidor. Las rutas de campo en esta máscara no deben contener un nombre de campo reservado.

updateTransforms[]

object (FieldTransform)

Las transformaciones que se realizarán después de la actualización.

Este campo solo se puede configurar cuando la operación es update. Si está presente, esta escritura equivale a realizar update y transform en el mismo documento de forma atómica y en orden.

currentDocument

object (Precondition)

Una condición previa opcional en el documento.

La escritura fallará si el documento de destino lo configura y no la cumple.

Campo de unión operation. La operación que se ejecutará. Las direcciones (operation) solo pueden ser una de las siguientes opciones:
update

object (Document)

Un documento para escribir

delete

string

Un nombre de documento para borrar. En el formato: projects/{projectId}/databases/{databaseId}/documents/{document_path}.

transform

object (DocumentTransform)

Aplica una transformación a un documento.

DocumentTransform

Es la transformación de un documento.

Representación JSON
{
  "document": string,
  "fieldTransforms": [
    {
      object (FieldTransform)
    }
  ]
}
Campos
document

string

El nombre del documento que se transformará.

fieldTransforms[]

object (FieldTransform)

La lista de transformaciones que se aplicarán a los campos del documento, en orden. Este campo no debe estar vacío.

FieldTransform

Una transformación de un campo del documento.

Representación 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

La ruta del campo. Consulta Document.fields para ver la referencia de sintaxis de la ruta de campo.

Campo de unión transform_type. La transformación que se aplica en el campo. Las direcciones (transform_type) solo pueden ser una de las siguientes opciones:
setToServerValue

enum (ServerValue)

Establece el campo en el valor de servidor dado.

increment

object (Value)

Agrega el valor dado al valor actual del campo.

Debe ser un número entero o un valor doble. Si el campo no es un número entero o doble, o si el campo aún no existe, la transformación lo establecerá en el valor dado. Si el valor especificado o el valor del campo actual son dobles, ambos se interpretarán como dobles. La aritmética doble y la representación de valores dobles siguen la semántica del estándar IEEE 754. Si hay un desbordamiento de números enteros positivo o negativo, el campo se resuelve en el número entero positivo o negativo de mayor magnitud.

maximum

object (Value)

Establece el campo en el valor máximo de su valor actual y el valor dado.

Debe ser un número entero o un valor doble. Si el campo no es un número entero o doble, o si el campo aún no existe, la transformación lo establecerá en el valor dado. Si se aplica una operación máxima en la que el campo y el valor de entrada son de tipos mixtos (es decir, uno es un número entero y el otro es un doble), el campo acepta el tipo del operando más grande. Si los operandos son equivalentes (p.ej., 3 y 3.0), el campo no cambia. 0, 0.0 y -0.0 son todos cero. El máximo de un valor almacenado en cero y un valor de entrada de cero es siempre el valor almacenado. El máximo de cualquier valor numérico x y NaN es NaN.

minimum

object (Value)

Establece el campo en el valor mínimo de su valor actual y el valor dado.

Debe ser un número entero o un valor doble. Si el campo no es un número entero o doble, o si el campo aún no existe, la transformación lo establecerá en el valor de entrada. Si se aplica una operación mínima en la que el campo y el valor de entrada son de tipos mixtos (es decir, uno es un número entero y el otro es un doble), el campo acepta el tipo del operando más pequeño. Si los operandos son equivalentes (p.ej., 3 y 3.0), el campo no cambia. 0, 0.0 y -0.0 son todos cero. El mínimo de un valor almacenado de cero y un valor de entrada de cero es siempre el valor almacenado. El mínimo de cualquier valor numérico x y NaN es NaN.

appendMissingElements

object (ArrayValue)

Agrega los elementos especificados en orden si aún no están presentes en el valor de campo actual. Si el campo no es un array, o si el campo aún no existe, primero se establece el array vacío.

Los números equivalentes de diferentes tipos (p.ej., 3L y 3.0) se consideran iguales cuando se verifica si falta un valor. NaN equivale a NaN, y Nulo equivale a Nulo. Si la entrada contiene varios valores equivalentes, solo se considerará el primero.

El transform_result correspondiente será el valor nulo.

removeAllFromArray

object (ArrayValue)

Quita todos los elementos dados del array del campo. Si el campo no es un array, o si el campo aún no existe, se usa el array vacío.

Los números equivalentes de los diferentes tipos (p.ej., 3L y 3.0) se consideran iguales para decidir si un elemento se debe quitar. NaN equivale a NaN, y Nulo equivale a Nulo. Esta acción quitará todos los valores equivalentes si hay duplicados.

El transform_result correspondiente será el valor nulo.

ServerValue

Es un valor que calcula el servidor.

Enumeradores
SERVER_VALUE_UNSPECIFIED No se especifica. No se debe usar este valor.
REQUEST_TIME La hora en la que el servidor procesó la solicitud, con precisión de milisegundos. Si se usan en varios campos (mismos o diferentes documentos) en una transacción, todos los campos tendrán la misma marca de tiempo del servidor.