Package google.firestore.v1

Índice

Tienda de fuego

El servicio Cloud Firestore.

Cloud Firestore es una base de datos de documentos NoSQL nativa de la nube, sin servidor, rápida y totalmente administrada que simplifica el almacenamiento, la sincronización y la consulta de datos para sus aplicaciones móviles, web y de IoT a escala global. Sus bibliotecas de clientes brindan sincronización en vivo y soporte fuera de línea, mientras que sus funciones de seguridad e integraciones con Firebase y Google Cloud Platform aceleran la creación de aplicaciones verdaderamente sin servidor.

LoteObtenerDocumentos

rpc BatchGetDocuments( BatchGetDocumentsRequest ) returns ( BatchGetDocumentsResponse )

Obtiene múltiples documentos.

No se garantiza que los documentos devueltos por este método se devuelvan en el mismo orden en que fueron solicitados.

Ámbitos de autorización

Requiere uno de los siguientes ámbitos de OAuth:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

Para obtener más información, consulte Descripción general de la autenticación .

Escritura por lotes

rpc BatchWrite( BatchWriteRequest ) returns ( BatchWriteResponse )

Aplica un lote de operaciones de escritura.

El método BatchWrite no aplica las operaciones de escritura de forma atómica y puede aplicarlas fuera de orden. El método no permite más de una escritura por documento. Cada escritura tiene éxito o falla de forma independiente. Consulte BatchWriteResponse para conocer el estado correcto de cada escritura.

Si necesita un conjunto de escrituras aplicadas atómicamente, utilice Commit en su lugar.

Ámbitos de autorización

Requiere uno de los siguientes ámbitos de OAuth:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

Para obtener más información, consulte Descripción general de la autenticación .

Iniciar transacción

rpc BeginTransaction( BeginTransactionRequest ) returns ( BeginTransactionResponse )

Inicia una nueva transacción.

Ámbitos de autorización

Requiere uno de los siguientes ámbitos de OAuth:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

Para obtener más información, consulte Descripción general de la autenticación .

Comprometerse

rpc Commit( CommitRequest ) returns ( CommitResponse )

Confirma una transacción y, opcionalmente, actualiza los documentos.

Ámbitos de autorización

Requiere uno de los siguientes ámbitos de OAuth:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

Para obtener más información, consulte Descripción general de la autenticación .

CrearDocumento

rpc CreateDocument( CreateDocumentRequest ) returns ( Document )

Crea un nuevo documento.

Ámbitos de autorización

Requiere uno de los siguientes ámbitos de OAuth:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

Para obtener más información, consulte Descripción general de la autenticación .

Eliminar documento

rpc DeleteDocument( DeleteDocumentRequest ) returns ( Empty )

Elimina un documento.

Ámbitos de autorización

Requiere uno de los siguientes ámbitos de OAuth:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

Para obtener más información, consulte Descripción general de la autenticación .

Obtener documento

rpc GetDocument( GetDocumentRequest ) returns ( Document )

Obtiene un solo documento.

Ámbitos de autorización

Requiere uno de los siguientes ámbitos de OAuth:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

Para obtener más información, consulte Descripción general de la autenticación .

Lista de ID de colección

rpc ListCollectionIds( ListCollectionIdsRequest ) returns ( ListCollectionIdsResponse )

Enumera todos los ID de colección debajo de un documento.

Ámbitos de autorización

Requiere uno de los siguientes ámbitos de OAuth:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

Para obtener más información, consulte Descripción general de la autenticación .

ListaDocumentos

rpc ListDocuments( ListDocumentsRequest ) returns ( ListDocumentsResponse )

Enumera documentos.

Ámbitos de autorización

Requiere uno de los siguientes ámbitos de OAuth:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

Para obtener más información, consulte Descripción general de la autenticación .

Escuchar

rpc Listen( ListenRequest ) returns ( ListenResponse )

Escucha los cambios. Este método solo está disponible a través de gRPC o WebChannel (no REST).

Ámbitos de autorización

Requiere uno de los siguientes ámbitos de OAuth:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

Para obtener más información, consulte Descripción general de la autenticación .

Consulta de partición

rpc PartitionQuery( PartitionQueryRequest ) returns ( PartitionQueryResponse )

Particiona una consulta devolviendo cursores de partición que se pueden usar para ejecutar la consulta en paralelo. Los cursores de partición devueltos son puntos de división que RunQuery puede utilizar como puntos de inicio/finalización de los resultados de la consulta.

Ámbitos de autorización

Requiere uno de los siguientes ámbitos de OAuth:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

Para obtener más información, consulte Descripción general de la autenticación .

Retroceder

rpc Rollback( RollbackRequest ) returns ( Empty )

Deshace una transacción.

Ámbitos de autorización

Requiere uno de los siguientes ámbitos de OAuth:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

Para obtener más información, consulte Descripción general de la autenticación .

Ejecutar consulta de agregación

rpc RunAggregationQuery( RunAggregationQueryRequest ) returns ( RunAggregationQueryResponse )

Ejecuta una consulta de agregación.

En lugar de producir resultados Document como Firestore.RunQuery , esta API permite ejecutar una agregación para producir una serie de AggregationResult en el lado del servidor.

Ejemplo de alto nivel:

-- Return the number of documents in table given a filter.
SELECT COUNT(*) FROM ( SELECT * FROM k where a = true );
Ámbitos de autorización

Requiere uno de los siguientes ámbitos de OAuth:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

Para obtener más información, consulte Descripción general de la autenticación .

Ejecutar consulta

rpc RunQuery( RunQueryRequest ) returns ( RunQueryResponse )

Ejecuta una consulta.

Ámbitos de autorización

Requiere uno de los siguientes ámbitos de OAuth:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

Para obtener más información, consulte Descripción general de la autenticación .

ActualizarDocumento

rpc UpdateDocument( UpdateDocumentRequest ) returns ( Document )

Actualiza o inserta un documento.

Ámbitos de autorización

Requiere uno de los siguientes ámbitos de OAuth:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

Para obtener más información, consulte Descripción general de la autenticación .

Escribir

rpc Write( WriteRequest ) returns ( WriteResponse )

Transmite lotes de actualizaciones y eliminaciones de documentos, en orden. Este método solo está disponible a través de gRPC o WebChannel (no REST).

Ámbitos de autorización

Requiere uno de los siguientes ámbitos de OAuth:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

Para obtener más información, consulte Descripción general de la autenticación .

Resultado de agregación

El resultado de un único depósito de una consulta de agregación de Firestore.

Las claves de aggregate_fields son las mismas para todos los resultados de una consulta de agregación, a diferencia de las consultas de documentos que pueden tener diferentes campos presentes para cada resultado.

Campos
aggregate_fields

map<string, Value >

El resultado de las funciones de agregación, por ejemplo: COUNT(*) AS total_docs .

La clave es el alias asignado a la función de agregación en la entrada y el tamaño de este mapa es igual al número de funciones de agregación en la consulta.

Valor de matriz

Un valor de matriz.

Campos
values[]

Value

Valores en la matriz.

Solicitud de obtención de documentos por lotes

La solicitud de Firestore.BatchGetDocuments .

Campos
database

string

Requerido. El nombre de la base de datos. En el formato: projects/{project_id}/databases/{database_id} .

documents[]

string

Los nombres de los documentos a recuperar. En el formato: projects/{project_id}/databases/{database_id}/documents/{document_path} . La solicitud fallará si alguno de los documentos no es un recurso secundario de la database dada. Se eliminarán los nombres duplicados.

mask

DocumentMask

Los campos a devolver. Si no se establece, devuelve todos los campos.

Si un documento tiene un campo que no está presente en esta máscara, ese campo no se devolverá en la respuesta.

consistency_selector del campo de unión. El modo de coherencia para esta transacción. Si no se establece, el valor predeterminado es una coherencia fuerte. consistency_selector puede ser sólo uno de los siguientes:
transaction

bytes

Lee documentos en una transacción.

new_transaction

TransactionOptions

Inicia una nueva transacción y lee los documentos. El valor predeterminado es una transacción de solo lectura. El nuevo ID de transacción se devolverá como primera respuesta en la secuencia.

read_time

Timestamp

Lee documentos tal como estaban en el momento dado.

Debe ser una marca de tiempo con precisión de microsegundos dentro de la última hora o, si la recuperación de un punto en el tiempo está habilitada, también puede ser una marca de tiempo de un minuto completo dentro de los últimos 7 días.

LoteObtenerDocumentosRespuesta

La respuesta transmitida para Firestore.BatchGetDocuments .

Campos
transaction

bytes

La transacción que se inició como parte de esta solicitud. Solo se establecerá en la primera respuesta y solo si BatchGetDocumentsRequest.new_transaction se configuró en la solicitud.

read_time

Timestamp

Hora a la que se leyó el documento. Esto puede estar aumentando monóticamente; en este caso, se garantiza que los documentos anteriores en el flujo de resultados no habrán cambiado entre su tiempo de lectura y este.

result de campo de la Unión. Un solo resultado. Puede estar vacío si el servidor simplemente devuelve una transacción. result puede ser sólo uno de los siguientes:
found

Document

Un documento que fue solicitado.

missing

string

Un nombre de documento que se solicitó pero no existe. En el formato: projects/{project_id}/databases/{database_id}/documents/{document_path} .

Solicitud de escritura por lotes

La solicitud de Firestore.BatchWrite .

Campos
database

string

Requerido. El nombre de la base de datos. En el formato: projects/{project_id}/databases/{database_id} .

writes[]

Write

Los escritos para aplicar.

El método no se aplica, escribe de forma atómica y no garantiza el pedido. Cada escritura tiene éxito o falla de forma independiente. No puede escribir en el mismo documento más de una vez por solicitud.

labels

map<string, string>

Etiquetas asociadas con este lote de escritura.

Respuesta de escritura por lotes

La respuesta de Firestore.BatchWrite .

Campos
write_results[]

WriteResult

El resultado de aplicar las escrituras.

Este i-ésimo resultado de escritura corresponde a la i-ésima escritura en la solicitud.

status[]

Status

El estado de aplicación de las escrituras.

Este i-ésimo estado de escritura corresponde a la i-ésima escritura en la solicitud.

Iniciar solicitud de transacción

La solicitud de Firestore.BeginTransaction .

Campos
database

string

Requerido. El nombre de la base de datos. En el formato: projects/{project_id}/databases/{database_id} .

options

TransactionOptions

Las opciones para la transacción. El valor predeterminado es una transacción de lectura y escritura.

Comenzar respuesta de transacción

La respuesta para Firestore.BeginTransaction .

Campos
transaction

bytes

La transacción que se inició.

Secuencia de bits

Una secuencia de bits, codificada en una matriz de bytes.

Cada byte en la matriz de bytes bitmap de bits almacena 8 bits de la secuencia. La única excepción es el último byte, que puede almacenar 8 bits o menos . El padding define el número de bits del último byte que se ignorarán como "relleno". Los valores de estos bits de "relleno" no están especificados y deben ignorarse.

Para recuperar el primer bit, bit 0, calcule: (bitmap[0] & 0x01) != 0 . Para recuperar el segundo bit, bit 1, calcule: (bitmap[0] & 0x02) != 0 . Para recuperar el tercer bit, bit 2, calcule: (bitmap[0] & 0x04) != 0 . Para recuperar el cuarto bit, bit 3, calcule: (bitmap[0] & 0x08) != 0 . Para recuperar el bit n, calcule: (bitmap[n / 8] & (0x01 << (n % 8))) != 0 .

El "tamaño" de una BitSequence (el número de bits que contiene) se calcula mediante esta fórmula: (bitmap.length * 8) - padding .

Campos
bitmap

bytes

Los bytes que codifican la secuencia de bits. Puede tener una longitud de cero.

padding

int32

El número de bits del último byte del bitmap que se ignorarán como "relleno". Si la longitud del mapa de bitmap es cero, entonces este valor debe ser 0 . En caso contrario, este valor debe estar entre 0 y 7, inclusive.

Filtro de floración

Un filtro de floración ( https://en.wikipedia.org/wiki/Bloom_filter) .

El filtro Bloom codifica las entradas con MD5 y trata el hash de 128 bits resultante como 2 valores hash distintos de 64 bits, interpretados como enteros sin signo utilizando codificación en complemento a 2.

Estos dos valores hash, denominados h1 y h2 , se usan para calcular los valores hash hash_count usando la fórmula, comenzando en i=0 :

h(i) = h1 + (i * h2)

Estos valores resultantes luego se toman en módulo del número de bits en el filtro de floración para que los bits del filtro de floración prueben la entrada dada.

Campos
bits

BitSequence

Los datos del filtro de floración.

hash_count

int32

El número de hashes utilizados por el algoritmo.

Solicitud de confirmación

La solicitud de Firestore.Commit .

Campos
database

string

Requerido. El nombre de la base de datos. En el formato: projects/{project_id}/databases/{database_id} .

writes[]

Write

Los escritos para aplicar.

Siempre ejecutado de forma atómica y en orden.

transaction

bytes

Si se establece, aplica todas las escrituras en esta transacción y la confirma.

Confirmar respuesta

La respuesta para Firestore.Commit .

Campos
write_results[]

WriteResult

El resultado de aplicar las escrituras.

Este i-ésimo resultado de escritura corresponde a la i-ésima escritura en la solicitud.

commit_time

Timestamp

La hora a la que se produjo la confirmación. Se garantiza que cualquier lectura con un read_time igual o mayor verá los efectos de la confirmación.

CrearSolicitud de Documento

La solicitud de Firestore.CreateDocument .

Campos
parent

string

Requerido. El recurso principal. Por ejemplo: projects/{project_id}/databases/{database_id}/documents o projects/{project_id}/databases/{database_id}/documents/chatrooms/{chatroom_id}

collection_id

string

Requerido. El ID de la colección, relativo al parent , para enumerar. Por ejemplo: chatrooms .

document_id

string

El ID del documento asignado por el cliente que se utilizará para este documento.

Opcional. Si no se especifica, el servicio asignará una identificación.

document

Document

Requerido. El documento a crear. No se debe establecer name .

mask

DocumentMask

Los campos a devolver. Si no se establece, devuelve todos los campos.

Si el documento tiene un campo que no está presente en esta máscara, ese campo no se devolverá en la respuesta.

Cursor

Una posición en un conjunto de resultados de una consulta.

Campos
values[]

Value

Los valores que representan una posición, en el orden en que aparecen en la cláusula order by de una consulta.

Puede contener menos valores de los especificados en la cláusula ordenar por.

before

bool

Si la posición está justo antes o después de los valores dados, en relación con el orden de clasificación definido por la consulta.

Eliminar solicitud de documento

La solicitud de Firestore.DeleteDocument .

Campos
name

string

Requerido. El nombre del recurso del documento que se va a eliminar. En el formato: projects/{project_id}/databases/{database_id}/documents/{document_path} .

current_document

Precondition

Una condición previa opcional en el documento. La solicitud fallará si esto se establece y el documento de destino no lo cumple.

Documento

Un documento de Firestore.

No debe exceder 1 MiB - 4 bytes.

Campos
name

string

El nombre del recurso del documento, por ejemplo projects/{project_id}/databases/{database_id}/documents/{document_path} .

fields

map<string, Value >

create_time

Timestamp

Sólo salida. La hora en la que se creó el documento.

Este valor aumenta monótonamente cuando se elimina un documento y luego se vuelve a crear. También se puede comparar con valores de otros documentos y el read_time de una consulta.

update_time

Timestamp

Sólo salida. La hora a la que se modificó el documento por última vez.

Este valor se establece inicialmente en create_time y luego aumenta monótonamente con cada cambio en el documento. También se puede comparar con valores de otros documentos y el read_time de una consulta.

Cambio de documento

Un Document ha cambiado.

Puede ser el resultado de múltiples writes , incluidas eliminaciones, que finalmente dieron como resultado un nuevo valor para el Document .

Se pueden devolver varios mensajes DocumentChange para el mismo cambio lógico, si se ven afectados varios destinos.

Campos
document

Document

El nuevo estado del Document .

Si se establece mask , contiene solo los campos que se actualizaron o agregaron.

target_ids[]

int32

Un conjunto de ID de objetivos que coinciden con este documento.

removed_target_ids[]

int32

Un conjunto de ID de objetivos para objetivos que ya no coinciden con este documento.

DocumentoEliminar

Se ha eliminado un Document .

Puede ser el resultado de múltiples writes , incluidas actualizaciones, la última de las cuales eliminó el Document .

Se pueden devolver varios mensajes DocumentDelete para la misma eliminación lógica, si se ven afectados varios destinos.

Campos
document

string

El nombre del recurso del Document que se eliminó.

removed_target_ids[]

int32

Un conjunto de ID de objetivos para objetivos que anteriormente coincidían con esta entidad.

read_time

Timestamp

La marca de tiempo de lectura en la que se observó la eliminación.

Mayor o igual al commit_time de la eliminación.

Máscara de documento

Un conjunto de rutas de campo en un documento. Se utiliza para restringir una operación de obtención o actualización de un documento a un subconjunto de sus campos. Esto es diferente de las máscaras de campo estándar, ya que siempre tiene como alcance un Document y tiene en cuenta la naturaleza dinámica de Value .

Campos
field_paths[]

string

La lista de rutas de campo en la máscara. Consulte Document.fields para obtener una referencia de sintaxis de ruta de campo.

DocumentoEliminar

Se ha eliminado un Document de la vista de los objetivos.

Se envía si el documento ya no es relevante para un objetivo y está fuera de la vista. Se puede enviar en lugar de DocumentDelete o DocumentChange si el servidor no puede enviar el nuevo valor del documento.

Se pueden devolver varios mensajes DocumentRemove para la misma escritura o eliminación lógica, si se ven afectados varios destinos.

Campos
document

string

El nombre del recurso del Document que ha desaparecido de la vista.

removed_target_ids[]

int32

Un conjunto de ID de objetivos para objetivos que anteriormente coincidían con este documento.

read_time

Timestamp

La marca de tiempo de lectura en la que se observó la eliminación.

Mayor o igual al commit_time del cambio/eliminación/eliminación.

Transformación de documento

Una transformación de un documento.

Campos
document

string

El nombre del documento a transformar.

field_transforms[]

FieldTransform

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

Transformación de campo

Una transformación de un campo del documento.

Campos
field_path

string

El camino del campo. Consulte Document.fields para obtener la referencia de sintaxis de la ruta del campo.

Campo de unión transform_type . La transformación para aplicar en el campo. transform_type puede ser solo uno de los siguientes:
set_to_server_value

ServerValue

Establece el campo al valor del servidor dado.

increment

Value

Agrega el valor dado al valor actual del campo.

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

maximum

Value

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

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

minimum

Value

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

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

append_missing_elements

ArrayValue

Agregue los elementos dados en orden si aún no están presentes en el valor del campo actual. Si el campo no es una matriz, o si el campo aún no existe, primero se establece en la matriz vacía.

Los números equivalentes de diferentes tipos (por ejemplo, 3L y 3,0) se consideran iguales al comprobar si falta un valor. NaN es igual a NaN y Null es igual a Null. Si la entrada contiene varios valores equivalentes, solo se considerará el primero.

El transform_result correspondiente será el valor nulo.

remove_all_from_array

ArrayValue

Elimine todos los elementos dados de la matriz en el campo. Si el campo no es una matriz, o si el campo aún no existe, se establece en la matriz vacía.

Los números equivalentes de los diferentes tipos (por ejemplo, 3L y 3.0) se consideran iguales al decidir si se debe eliminar un elemento. NaN es igual a NaN y Null es igual a Null. Esto eliminará todos los valores equivalentes si hay duplicados.

El transform_result correspondiente será el valor nulo.

Valor del servidor

Un valor calculado por el servidor.

Enumeraciones
SERVER_VALUE_UNSPECIFIED Sin especificar. Este valor no debe utilizarse.
REQUEST_TIME La hora a la que el servidor procesó la solicitud, con una precisión de milisegundos. Si se utiliza en varios campos (documentos iguales o diferentes) en una transacción, todos los campos obtendrán la misma marca de tiempo del servidor.

ExistenciaFiltro

Un resumen de todos los documentos que coinciden con un objetivo determinado.

Campos
target_id

int32

El ID de destino al que se aplica este filtro.

count

int32

El recuento total de documentos que coinciden con target_id .

Si es diferente del recuento de documentos en el cliente que coinciden, el cliente debe determinar manualmente qué documentos ya no coinciden con el objetivo.

El cliente puede utilizar el filtro de floración unchanged_names para ayudar con esta determinación probando TODOS los nombres de los documentos con el filtro; Si el nombre del documento NO está en el filtro, significa que el documento ya no coincide con el objetivo.

unchanged_names

BloomFilter

Un filtro de floración que, a pesar de su nombre, contiene las codificaciones de bytes UTF-8 de los nombres de recursos de TODOS los documentos que coinciden con target_id , en el formato projects/{project_id}/databases/{database_id}/documents/{document_path} .

Este filtro de floración puede omitirse a discreción del servidor, por ejemplo, si se considera que el cliente no lo utilizará o si es demasiado costoso desde el punto de vista computacional para calcularlo o transmitirlo. Los clientes deben manejar con elegancia la ausencia de este campo recurriendo a la lógica utilizada antes de que existiera este campo; es decir, vuelva a agregar el destino sin un token de reanudación para determinar qué documentos en la memoria caché del cliente no están sincronizados.

Obtener solicitud de documento

La solicitud de Firestore.GetDocument .

Campos
name

string

Requerido. El nombre del recurso del documento que se va a obtener. En el formato: projects/{project_id}/databases/{database_id}/documents/{document_path} .

mask

DocumentMask

Los campos a devolver. Si no se establece, devuelve todos los campos.

Si el documento tiene un campo que no está presente en esta máscara, ese campo no se devolverá en la respuesta.

consistency_selector del campo de unión. El modo de coherencia para esta transacción. Si no se establece, el valor predeterminado es una coherencia fuerte. consistency_selector puede ser sólo uno de los siguientes:
transaction

bytes

Lee el documento en una transacción.

read_time

Timestamp

Lee la versión del documento en el momento dado.

Debe ser una marca de tiempo con precisión de microsegundos dentro de la última hora o, si la recuperación de un punto en el tiempo está habilitada, también puede ser una marca de tiempo de un minuto completo dentro de los últimos 7 días.

Solicitud de ID de colección de lista

La solicitud de Firestore.ListCollectionIds .

Campos
parent

string

Requerido. El documento principal. En el formato: projects/{project_id}/databases/{database_id}/documents/{document_path} . Por ejemplo: projects/my-project/databases/my-database/documents/chatrooms/my-chatroom

page_size

int32

El número máximo de resultados que se devolverán.

page_token

string

Un token de página. Debe ser un valor de ListCollectionIdsResponse .

consistency_selector del campo de unión. El modo de coherencia para esta solicitud. Si no se establece, el valor predeterminado es una coherencia fuerte. consistency_selector puede ser sólo uno de los siguientes:
read_time

Timestamp

Lee documentos tal como estaban en el momento dado.

Debe ser una marca de tiempo con precisión de microsegundos dentro de la última hora o, si la recuperación de un punto en el tiempo está habilitada, también puede ser una marca de tiempo de un minuto completo dentro de los últimos 7 días.

ListaColecciónIdsRespuesta

La respuesta de Firestore.ListCollectionIds .

Campos
collection_ids[]

string

Los identificadores de colección.

next_page_token

string

Un token de página que se puede utilizar para continuar la lista.

ListaDocumentosSolicitud

La solicitud de Firestore.ListDocuments .

Campos
parent

string

Requerido. El nombre del recurso principal. En el formato: projects/{project_id}/databases/{database_id}/documents o projects/{project_id}/databases/{database_id}/documents/{document_path} .

Por ejemplo: projects/my-project/databases/my-database/documents o projects/my-project/databases/my-database/documents/chatrooms/my-chatroom

collection_id

string

Opcional. El ID de la colección, relativo al parent , para enumerar.

Por ejemplo: chatrooms o messages .

Esto es opcional y, cuando no se proporciona, Firestore enumerará los documentos de todas las colecciones bajo el parent proporcionado.

page_size

int32

Opcional. El número máximo de documentos a devolver en una sola respuesta.

Firestore puede devolver menos que este valor.

page_token

string

Opcional. Un token de página, recibido de una respuesta anterior ListDocuments .

Proporcione esto para recuperar la página siguiente. Al paginar, todos los demás parámetros (con excepción de page_size ) deben coincidir con los valores establecidos en la solicitud que generó el token de página.

order_by

string

Opcional. La ordenación facultativa de los documentos a devolver.

Por ejemplo: priority desc, __name__ desc .

Esto refleja el ORDER BY utilizado en las consultas de Firestore pero en una representación de cadena. Cuando están ausentes, los documentos se ordenan según __name__ ASC .

mask

DocumentMask

Opcional. Los campos a devolver. Si no se establece, devuelve todos los campos.

Si un documento tiene un campo que no está presente en esta máscara, ese campo no se devolverá en la respuesta.

show_missing

bool

Si la lista muestra documentos faltantes.

Falta un documento si no existe, pero hay subdocumentos anidados debajo de él. Cuando sea verdadero, dichos documentos faltantes se devolverán con una clave, pero no tendrán los campos create_time o update_time establecidos.

Es posible que las solicitudes con show_missing no especifiquen where u order_by .

consistency_selector del campo de unión. El modo de coherencia para esta transacción. Si no se establece, el valor predeterminado es una coherencia fuerte. consistency_selector puede ser sólo uno de los siguientes:
transaction

bytes

Realice la lectura como parte de una transacción ya activa.

read_time

Timestamp

Realice la lectura a la hora indicada.

Debe ser una marca de tiempo con precisión de microsegundos dentro de la última hora o, si la recuperación de un punto en el tiempo está habilitada, también puede ser una marca de tiempo de un minuto completo dentro de los últimos 7 días.

ListaDocumentosRespuesta

La respuesta para Firestore.ListDocuments .

Campos
documents[]

Document

Los documentos encontrados.

next_page_token

string

Un token para recuperar la siguiente página de documentos.

Si se omite este campo, no hay páginas posteriores.

EscucharSolicitar

Una solicitud para Firestore.Listen

Campos
database

string

Requerido. El nombre de la base de datos. En el formato: projects/{project_id}/databases/{database_id} .

labels

map<string, string>

Las etiquetas asociadas con este cambio de destino.

Campo de unión target_change . El objetivo admitido cambia. target_change puede ser solo uno de los siguientes:
add_target

Target

Un objetivo para agregar a esta transmisión.

remove_target

int32

El ID de un objetivo para eliminar de esta secuencia.

EscucharRespuesta

La respuesta para Firestore.Listen .

Campos
Campo de unión response_type . Las respuestas apoyadas. response_type puede ser solo uno de los siguientes:
target_change

TargetChange

Los objetivos han cambiado.

document_change

DocumentChange

Un Document ha cambiado.

document_delete

DocumentDelete

Se ha eliminado un Document .

document_remove

DocumentRemove

Se eliminó un Document de un destino (porque ya no es relevante para ese destino).

filter

ExistenceFilter

Un filtro que se aplicará al conjunto de documentos devueltos previamente para el destino determinado.

Se devuelve cuando es posible que se hayan eliminado documentos del objetivo determinado, pero se desconocen los documentos exactos.

Valor del mapa

Un valor de mapa.

Campos
fields

map<string, Value >

Los campos del mapa.

Las claves del mapa representan nombres de campos. Los nombres de campos que coinciden con la expresión regular __.*__ están reservados. Los nombres de campos reservados están prohibidos excepto en ciertos contextos documentados. Las claves del mapa, representadas como UTF-8, no deben exceder los 1500 bytes y no pueden estar vacías.

Solicitud de consulta de partición

La solicitud de Firestore.PartitionQuery .

Campos
parent

string

Requerido. El nombre del recurso principal. En el formato: projects/{project_id}/databases/{database_id}/documents . No se admiten nombres de recursos de documentos; sólo se pueden especificar nombres de recursos de bases de datos.

partition_count

int64

El número máximo deseado de puntos de partición. Las particiones pueden devolverse en varias páginas de resultados. El número debe ser positivo. El número real de particiones devueltas puede ser menor.

Por ejemplo, esto se puede establecer en uno menos que el número de consultas paralelas que se ejecutarán o, al ejecutar un trabajo de canalización de datos, uno menos que el número de trabajadores o instancias informáticas disponibles.

page_token

string

El valor next_page_token devuelto por una llamada anterior a PartitionQuery que puede usarse para obtener un conjunto adicional de resultados. No hay garantías de pedido entre conjuntos de resultados. Por lo tanto, utilizar múltiples conjuntos de resultados requerirá fusionar los diferentes conjuntos de resultados.

Por ejemplo, dos llamadas posteriores utilizando un page_token pueden devolver:

  • cursor B, cursor M, cursor Q
  • cursor A, cursor U, cursor W

Para obtener un conjunto de resultados completo ordenado con respecto a los resultados de la consulta proporcionada a PartitionQuery, los conjuntos de resultados deben fusionarse: cursor A, cursor B, cursor M, cursor Q, cursor U, cursor W

page_size

int32

El número máximo de particiones que se devolverán en esta llamada, sujeto a partition_count .

Por ejemplo, si partition_count = 10 y page_size = 8, la primera llamada a PartitionQuery devolverá hasta 8 particiones y un next_page_token si existen más resultados. Una segunda llamada a PartitionQuery devolverá hasta 2 particiones, para completar el total de 10 especificadas en partition_count .

Campo de unión query_type . La consulta para particionar. query_type puede ser solo uno de los siguientes:
structured_query

StructuredQuery

Una consulta estructurada. La consulta debe especificar una colección con todos los descendientes y ordenarse por nombre de forma ascendente. No se admiten otros filtros, orden por orden, límites, compensaciones y cursores de inicio/fin.

consistency_selector del campo de unión. El modo de coherencia para esta solicitud. Si no se establece, el valor predeterminado es una coherencia fuerte. consistency_selector puede ser sólo uno de los siguientes:
read_time

Timestamp

Lee documentos tal como estaban en el momento dado.

Debe ser una marca de tiempo con precisión de microsegundos dentro de la última hora o, si la recuperación de un punto en el tiempo está habilitada, también puede ser una marca de tiempo de un minuto completo dentro de los últimos 7 días.

ParticiónConsultaRespuesta

La respuesta para Firestore.PartitionQuery .

Campos
partitions[]

Cursor

Resultados de la partición. Cada partición es un punto de división que RunQuery puede utilizar como punto inicial o final para los resultados de la consulta. Las solicitudes RunQuery deben realizarse con la misma consulta proporcionada a esta solicitud PartitionQuery. Los cursores de partición se ordenarán según el mismo orden que los resultados de la consulta proporcionada a PartitionQuery.

Por ejemplo, si una solicitud PartitionQuery devuelve los cursores de partición A y B, ejecutar las tres consultas siguientes devolverá el conjunto de resultados completo de la consulta original:

  • consulta, end_at A
  • consulta, inicio_en A, fin_en B
  • consulta, inicio_en B

Un resultado vacío puede indicar que la consulta tiene muy pocos resultados para particionarse o que la consulta aún no es compatible con la partición.

next_page_token

string

Un token de página que se puede utilizar para solicitar un conjunto adicional de resultados, hasta el número especificado por partition_count en la solicitud PartitionQuery. Si está en blanco, no hay más resultados.

Condición previa

Una condición previa de un documento, utilizada para operaciones condicionales.

Campos
Campo de unión condition_type . El tipo de condición previa. condition_type puede ser solo uno de los siguientes:
exists

bool

Cuando se establece en true , el documento de destino debe existir. Cuando se establece en false , el documento de destino no debe existir.

update_time

Timestamp

Cuando se establece, el documento de destino debe existir y haberse actualizado por última vez en ese momento. La marca de tiempo debe estar alineada con microsegundos.

Solicitud de reversión

La solicitud de Firestore.Rollback .

Campos
database

string

Requerido. El nombre de la base de datos. En el formato: projects/{project_id}/databases/{database_id} .

transaction

bytes

Requerido. La transacción a revertir.

EjecutarAggregationQueryRequest

La solicitud de Firestore.RunAggregationQuery .

Campos
parent

string

Requerido. El nombre del recurso principal. En el formato: projects/{project_id}/databases/{database_id}/documents o projects/{project_id}/databases/{database_id}/documents/{document_path} . Por ejemplo: projects/my-project/databases/my-database/documents o projects/my-project/databases/my-database/documents/chatrooms/my-chatroom

Campo de unión query_type . La consulta a ejecutar. query_type puede ser solo uno de los siguientes:
structured_aggregation_query

StructuredAggregationQuery

Una consulta de agregación.

consistency_selector del campo de unión. El modo de coherencia para la consulta tiene por defecto una coherencia fuerte. consistency_selector puede ser sólo uno de los siguientes:
transaction

bytes

Ejecute la agregación dentro de una transacción ya activa.

El valor aquí es el ID de transacción opaco para ejecutar la consulta.

new_transaction

TransactionOptions

Inicia una nueva transacción como parte de la consulta, de forma predeterminada es de solo lectura.

El nuevo ID de transacción se devolverá como primera respuesta en la secuencia.

read_time

Timestamp

Ejecuta la consulta en la marca de tiempo dada.

Debe ser una marca de tiempo con precisión de microsegundos dentro de la última hora o, si la recuperación de un punto en el tiempo está habilitada, también puede ser una marca de tiempo de un minuto completo dentro de los últimos 7 días.

EjecutarAggregationQueryResponse

La respuesta para Firestore.RunAggregationQuery .

Campos
result

AggregationResult

Un único resultado de agregación.

No presente al informar el progreso parcial.

transaction

bytes

La transacción que se inició como parte de esta solicitud.

Solo presente en la primera respuesta cuando la solicitud solicita iniciar una nueva transacción.

read_time

Timestamp

La hora a la que se calculó el resultado agregado. Esto siempre aumenta monótonamente; en este caso, se garantiza que el AggregationResult anterior en la secuencia de resultados no habrá cambiado entre su read_time y este.

Si la consulta no arroja resultados, se enviará una respuesta con read_time y sin result , y esto representa el momento en que se ejecutó la consulta.

Ejecutar solicitud de consulta

La solicitud de Firestore.RunQuery .

Campos
parent

string

Requerido. El nombre del recurso principal. En el formato: projects/{project_id}/databases/{database_id}/documents o projects/{project_id}/databases/{database_id}/documents/{document_path} . Por ejemplo: projects/my-project/databases/my-database/documents o projects/my-project/databases/my-database/documents/chatrooms/my-chatroom

Campo de unión query_type . La consulta a ejecutar. query_type puede ser solo uno de los siguientes:
structured_query

StructuredQuery

Una consulta estructurada.

consistency_selector del campo de unión. El modo de coherencia para esta transacción. Si no se establece, el valor predeterminado es una coherencia fuerte. consistency_selector puede ser sólo uno de los siguientes:
transaction

bytes

Ejecute la consulta dentro de una transacción ya activa.

El valor aquí es el ID de transacción opaco para ejecutar la consulta.

new_transaction

TransactionOptions

Inicia una nueva transacción y lee los documentos. El valor predeterminado es una transacción de solo lectura. El nuevo ID de transacción se devolverá como primera respuesta en la secuencia.

read_time

Timestamp

Lee documentos tal como estaban en el momento dado.

Debe ser una marca de tiempo con precisión de microsegundos dentro de la última hora o, si la recuperación de un punto en el tiempo está habilitada, también puede ser una marca de tiempo de un minuto completo dentro de los últimos 7 días.

Ejecutar respuesta a consulta

La respuesta para Firestore.RunQuery .

Campos
transaction

bytes

La transacción que se inició como parte de esta solicitud. Solo se puede configurar en la primera respuesta y solo si RunQueryRequest.new_transaction se configuró en la solicitud. Si se establece, no se establecerán otros campos en esta respuesta.

document

Document

Un resultado de consulta, no establecido al informar el progreso parcial.

read_time

Timestamp

Hora a la que se leyó el documento. Esto puede estar aumentando monótonamente; en este caso, se garantiza que los documentos anteriores en el flujo de resultados no habrán cambiado entre su read_time y este.

Si la consulta no arroja resultados, se enviará una respuesta con read_time y ningún document , y esto representa el momento en que se ejecutó la consulta.

skipped_results

int32

El número de resultados que se han omitido debido a un desplazamiento entre la última respuesta y la respuesta actual.

Campo de unión continuation_selector . El modo de continuación de la consulta. Si está presente, indica que el flujo de respuesta de la consulta actual ha finalizado. Esto se puede configurar con o sin un document presente, pero cuando se configura, no se devuelven más resultados. continuation_selector puede ser solo uno de los siguientes:
done

bool

Si está presente, Firestore ha finalizado completamente la solicitud y no se devolverán más documentos.

Consulta de agregación estructurada

Consulta de Firestore para ejecutar una agregación a través de StructuredQuery .

Campos
aggregations[]

Aggregation

Opcional. Serie de agregaciones para aplicar sobre los resultados de la structured_query .

Requiere:

  • Un mínimo de una y un máximo de cinco agregaciones por consulta.
Campo de unión query_type . La consulta base para agregar. query_type puede ser solo uno de los siguientes:
structured_query

StructuredQuery

Consulta estructurada anidada.

Agregación

Define una agregación que produce un único resultado.

Campos
alias

string

Opcional. Nombre opcional del campo en el que almacenar el resultado de la agregación.

Si no se proporciona, Firestore elegirá un nombre predeterminado siguiendo el formato field_<incremental_id++> . Por ejemplo:

AGGREGATE
  COUNT_UP_TO(1) AS count_up_to_1,
  COUNT_UP_TO(2),
  COUNT_UP_TO(3) AS count_up_to_3,
  COUNT(*)
OVER (
  ...
);

se convierte en:

AGGREGATE
  COUNT_UP_TO(1) AS count_up_to_1,
  COUNT_UP_TO(2) AS field_1,
  COUNT_UP_TO(3) AS count_up_to_3,
  COUNT(*) AS field_2
OVER (
  ...
);

Requiere:

  • Debe ser único en todos los alias de agregación.
  • Cumplir con las limitaciones document field name .
operator de campo sindical. El tipo de agregación a realizar, requerido. operator sólo puede ser uno de los siguientes:
count

Count

Agregador de conteo.

sum

Sum

Agregador de sumas.

avg

Avg

Agregador promedio.

promedio

Promedio de los valores del campo solicitado.

  • Sólo se agregarán valores numéricos. Se omiten todos los valores no numéricos, incluido NULL .

  • Si los valores agregados contienen NaN , devuelve NaN . Infinity Math sigue los estándares IEEE-754.

  • Si el conjunto de valores agregados está vacío, devuelve NULL .

  • Siempre devuelve el resultado como doble.

Campos
field

FieldReference

El campo para agregar.

Contar

Recuento de documentos que coinciden con la consulta.

La función de agregación COUNT(*) opera en todo el documento, por lo que no requiere una referencia de campo.

Campos
up_to

Int64Value

Opcional. Restricción opcional sobre el número máximo de documentos a contar.

Esto proporciona una manera de establecer un límite superior en la cantidad de documentos a escanear, limitando la latencia y el costo.

No especificado se interpreta como sin límite.

Ejemplo de alto nivel:

AGGREGATE COUNT_UP_TO(1000) OVER ( SELECT * FROM k );

Requiere:

  • Debe ser mayor que cero cuando esté presente.

Suma

Suma de los valores del campo solicitado.

  • Sólo se agregarán valores numéricos. Se omiten todos los valores no numéricos, incluido NULL .

  • Si los valores agregados contienen NaN , devuelve NaN . Infinity Math sigue los estándares IEEE-754.

  • Si el conjunto de valores agregados está vacío, devuelve 0.

  • Devuelve un entero de 64 bits si todos los números agregados son enteros y el resultado de la suma no se desborda. De lo contrario, el resultado se devuelve como doble. Tenga en cuenta que incluso si todos los valores agregados son números enteros, el resultado se devuelve como doble si no cabe dentro de un entero de 64 bits con signo. Cuando esto ocurre, el valor devuelto perderá precisión.

  • Cuando se produce un desbordamiento insuficiente, la agregación de punto flotante no es determinista. Esto significa que ejecutar la misma consulta repetidamente sin ningún cambio en los valores subyacentes podría producir resultados ligeramente diferentes cada vez. En esos casos, los valores deben almacenarse como números enteros sobre números de punto flotante.

Campos
field

FieldReference

El campo para agregar.

Consulta estructurada

Una consulta de Firestore.

Campos
select

Projection

Subconjunto opcional de los campos a devolver.

Esto actúa como DocumentMask sobre los documentos devueltos por una consulta. Cuando no está configurado, se supone que la persona que llama quiere que se le devuelvan todos los campos.

from[]

CollectionSelector

Las colecciones a consultar.

where

Filter

El filtro a aplicar.

order_by[]

Order

El orden que se aplicará a los resultados de la consulta.

Firestore permite a las personas que llaman proporcionar un pedido completo, un pedido parcial o ningún pedido en absoluto. En todos los casos, Firestore garantiza un pedido estable a través de las siguientes reglas:

  • Se requiere order_by para hacer referencia a todos los campos utilizados con un filtro de desigualdad.
  • Todos los campos que deben estar en order_by pero que aún no están presentes se agregan en el orden lexicográfico del nombre del campo.
  • Si no se especifica una orden en __name__ , se agrega de forma predeterminada.

Los campos se añaden con la misma dirección de clasificación que el último orden especificado, o 'ASCENDENTE' si no se especificó ningún orden. Por ejemplo:

  • ORDER BY a se convierte en ORDER BY a ASC, __name__ ASC
  • ORDER BY a DESC se convierte en ORDER BY a DESC, __name__ DESC
  • WHERE a > 1 se convierte en WHERE a > 1 ORDER BY a ASC, __name__ ASC
  • WHERE __name__ > ... AND a > 1 se convierte en WHERE __name__ > ... AND a > 1 ORDER BY a ASC, __name__ ASC
start_at

Cursor

Un prefijo potencial de una posición en el conjunto de resultados para iniciar la consulta.

El orden del conjunto de resultados se basa en la cláusula ORDER BY de la consulta original.

SELECT * FROM k WHERE a = 1 AND b > 2 ORDER BY b ASC, __name__ ASC;

Los resultados de esta consulta están ordenados por (b ASC, __name__ ASC) .

Los cursores pueden hacer referencia al orden completo o a un prefijo de la ubicación, aunque no pueden hacer referencia a más campos que los que se encuentran en el ORDER BY proporcionado.

Siguiendo con el ejemplo anterior, adjuntar los siguientes cursores de inicio tendrá un impacto variable:

  • START BEFORE (2, /k/123) : inicie la consulta justo antes a = 1 AND b > 2 AND __name__ > /k/123 .
  • START AFTER (10) : inicie la consulta justo después a = 1 AND b > 10 .

A diferencia OFFSET , que requiere escanear los primeros n. No se requiere esta posición para que coincida con un resultado real, escaneará hacia adelante desde esta posición para encontrar el siguiente documento.

Requiere:

  • El número de valores no puede ser mayor que el número de campos especificados en el ORDER BY cláusula.
end_at

Cursor

Un prefijo potencial de una posición en el resultado establecido para finalizar la consulta en.

Esto es similar a START_AT , pero con él controlando la posición final en lugar de la posición de inicio.

Requiere:

  • El número de valores no puede ser mayor que el número de campos especificados en el ORDER BY cláusula.
offset

int32

El número de documentos para omitir antes de devolver el primer resultado.

Esto se aplica después de las restricciones especificadas por el WHERE , START AT y END AT pero antes de la cláusula LIMIT .

Requiere:

  • El valor debe ser mayor o igual a cero si se especifica.
limit

Int32Value

El número máximo de resultados para devolver.

Se aplica después de todas las otras restricciones.

Requiere:

  • El valor debe ser mayor o igual a cero si se especifica.

Colección selectora

Una selección de una colección, como messages as m1 .

Campos
collection_id

string

La identificación de la colección. Cuando se establece, selecciona solo colecciones con esta ID.

all_descendants

bool

Cuando False, selecciona solo colecciones que son hijos inmediatos del parent especificados en RunQueryRequest que contiene. Cuando es cierto, selecciona todas las colecciones descendientes.

Filtro compuesto

Un filtro que combina otros filtros con el operador dado.

Campos
op

Operator

El operador para combinar múltiples filtros.

filters[]

Filter

La lista de filtros para combinar.

Requiere:

  • Al menos un filtro está presente.

Operador

Un operador de filtro compuesto.

Enumeraciones
OPERATOR_UNSPECIFIED Sin especificar. Este valor no debe usarse.
AND Se requieren documentos para satisfacer todos los filtros combinados.
OR Se requieren documentos para satisfacer al menos uno de los filtros combinados.

Dirección

Una dirección de clasificación.

Enumeraciones
DIRECTION_UNSPECIFIED Sin especificar.
ASCENDING Ascendente.
DESCENDING Descendiendo.

Filtro de campo

Un filtro en un campo específico.

Campos
field

FieldReference

El campo para filtrar por.

op

Operator

El operador para filtrar por.

value

Value

El valor para comparar.

Operador

Un operador de filtro de campo.

Enumeraciones
OPERATOR_UNSPECIFIED Sin especificar. Este valor no debe usarse.
LESS_THAN

El field dado es menor que el value dado.

Requiere:

  • Ese field es lo primero en order_by .
LESS_THAN_OR_EQUAL

El field dado es menor o igual al value dado.

Requiere:

  • Ese field es lo primero en order_by .
GREATER_THAN

El field dado es mayor que el value dado.

Requiere:

  • Ese field es lo primero en order_by .
GREATER_THAN_OR_EQUAL

El field dado es mayor o igual al value dado.

Requiere:

  • Ese field es lo primero en order_by .
EQUAL El field dado es igual al value dado.
NOT_EQUAL

El field dado no es igual al value dado.

Requiere:

  • Ningún otro NOT_EQUAL , NOT_IN , IS_NOT_NULL o IS_NOT_NAN .
  • Ese field es primero en el order_by .
ARRAY_CONTAINS El field dado es una matriz que contiene el value dado.
IN

El field dado es igual a al menos un valor en la matriz dada.

Requiere:

  • Ese value es un ArrayValue no vacío, sujeto a límites de disyunción.
  • No NOT_IN filtros en la misma consulta.
ARRAY_CONTAINS_ANY

El field dado es una matriz que contiene cualquiera de los valores en la matriz dada.

Requiere:

  • Ese value es un ArrayValue no vacío, sujeto a límites de disyunción.
  • Ningún otro ARRAY_CONTAINS_ANY filtros dentro de la misma disyunción.
  • No NOT_IN filtros en la misma consulta.
NOT_IN

El valor del field no está en la matriz dada.

Requiere:

  • Ese value es un ArrayValue no vacío con la mayoría de los 10 valores.
  • Ningún otro OR , IN , ARRAY_CONTAINS_ANY , NOT_IN , NOT_EQUAL , IS_NOT_NULL o IS_NOT_NAN .
  • Ese field es primero en el order_by .

Referencia de campo

Una referencia a un campo en un documento, Ex: stats.operations .

Campos
field_path

string

Una referencia a un campo en un documento.

Requiere:

  • Debe ser una cadena de segmentos ( . ) Dotelimited (.), Donde cada segmento se ajusta al document field name .

Filtrar

Un filtro.

Campos
Union Field filter_type . El tipo de filtro. filter_type puede ser solo uno de los siguientes:
composite_filter

CompositeFilter

Un filtro compuesto.

field_filter

FieldFilter

Un filtro en un campo de documento.

unary_filter

UnaryFilter

Un filtro que toma exactamente un argumento.

Orden

Un pedido en un campo.

Campos
field

FieldReference

El campo para ordenar por.

direction

Direction

La dirección para ordenar por. El valor predeterminado es ASCENDING .

Proyección

La proyección de los campos del documento para regresar.

Campos
fields[]

FieldReference

Los campos para regresar.

Si está vacío, todos los campos se devuelven. Para devolver solo el nombre del documento, use ['__name__'] .

Filtros unary

Un filtro con un solo operando.

Campos
op

Operator

El operador unario para aplicar.

Union Field operand_type . El argumento al filtro. operand_type puede ser solo uno de los siguientes:
field

FieldReference

El campo al que aplicar el operador.

Operador

Un operador unario.

Enumeraciones
OPERATOR_UNSPECIFIED Sin especificar. Este valor no debe usarse.
IS_NAN El field dado es igual a NaN .
IS_NULL El field dado es igual a NULL .
IS_NOT_NAN

El field dado no es igual a NaN .

Requiere:

  • Ningún otro NOT_EQUAL , NOT_IN , IS_NOT_NULL o IS_NOT_NAN .
  • Ese field es primero en el order_by .
IS_NOT_NULL

El field dado no es igual a NULL .

Requiere:

  • Un solo NOT_EQUAL , NOT_IN , IS_NOT_NULL o IS_NOT_NAN .
  • Ese field es primero en el order_by .

Objetivo

Una especificación de un conjunto de documentos para escuchar.

Campos
target_id

int32

La ID de destino que identifica el objetivo en la transmisión. Debe ser un número positivo y no cero.

Si target_id es 0 (o no especificado), el servidor asignará una ID para este objetivo y lo devolverá en un evento TargetChange::ADD . Una vez que se agrega un objetivo con target_id=0 , todos los objetivos posteriores también deben tener target_id=0 . Si se envía una solicitud AddTarget con target_id != 0 al servidor después de que se agrega un objetivo con target_id=0 , el servidor enviará inmediatamente una respuesta con un evento TargetChange::Remove .

Tenga en cuenta que si el cliente envía múltiples solicitudes AddTarget sin una ID, el orden de IDS devuelto en TargetChage.target_ids no está definido. Por lo tanto, los clientes deben proporcionar una ID de destino en lugar de confiar en el servidor para asignar uno.

Si target_id no es cero, no debe haber un objetivo activo existente en esta transmisión con la misma ID.

once

bool

Si el objetivo se elimina una vez que sea actual y consistente.

expected_count

Int32Value

El número de documentos que coinciden por última vez en la consulta en el token de currículum o la hora de lectura.

Este valor solo es relevante cuando se proporciona un resume_type . Este valor está presente y mayor que cero señales de que el cliente quiere que ExistenceFilter.unchanged_names se incluya en la respuesta.

Union Field target_type . El tipo de objetivo para escuchar. target_type puede ser solo uno de los siguientes:
query

QueryTarget

Un objetivo especificado por una consulta.

documents

DocumentsTarget

Un objetivo especificado por un conjunto de nombres de documentos.

Union Field resume_type . Cuándo empezar a escuchar.

Si se especifica, solo se devolverán los documentos coincidentes que se han actualizado después del resume_token o read_time . De lo contrario, todos los documentos coincidentes se devuelven antes de cualquier cambio posterior. resume_type puede ser solo uno de los siguientes:

resume_token

bytes

Un token de currículum de un TargetChange anterior para un objetivo idéntico.

El uso de un token de currículum con un objetivo diferente no es compatible y puede fallar.

read_time

Timestamp

Comience a escuchar después de un read_time específica.

El cliente debe conocer el estado de los documentos coincidentes en este momento.

Estarget de documentos

Un objetivo especificado por un conjunto de nombres de documentos.

Campos
documents[]

string

Los nombres de los documentos para recuperar. En el formato: projects/{project_id}/databases/{database_id}/documents/{document_path} . La solicitud fallará si alguno de los documentos no es un recurso infantil de la database dada. Los nombres duplicados serán eludidos.

Consulta

Un objetivo especificado por una consulta.

Campos
parent

string

El nombre del recurso principal. En el formato: projects/{project_id}/databases/{database_id}/documents o projects/{project_id}/databases/{database_id}/documents/{document_path} . Por ejemplo: projects/my-project/databases/my-database/documents o projects/my-project/databases/my-database/documents/chatrooms/my-chatroom

Campo de unión query_type . La consulta a ejecutar. query_type puede ser solo uno de los siguientes:
structured_query

StructuredQuery

Una consulta estructurada.

Cambio en el objetivo

Los objetivos que se observan han cambiado.

Campos
target_change_type

TargetChangeType

El tipo de cambio que ocurrió.

target_ids[]

int32

Las ID de objetivo de los objetivos que han cambiado.

Si está vacío, el cambio se aplica a todos los objetivos.

El orden de los ID de destino no está definido.

cause

Status

El error que resultó en este cambio, si corresponde.

resume_token

bytes

Un token que se puede usar para reanudar la transmisión para los target_ids dados, o todos los objetivos si target_ids está vacío.

No se establece en cada cambio objetivo.

read_time

Timestamp

El read_time consistente para el target_ids dado (omitido cuando los Target_IDS no están en una instantánea consistente).

Se garantiza que la transmisión enviará un read_time con target_ids vacío cada vez que toda la transmisión alcanza una nueva instantánea consistente. Agregar, actualizar y restablecer los mensajes están garantizados (eventualmente) dar como resultado una nueva instantánea consistente (mientras que no_change y eliminar mensajes no lo son).

Para una transmisión determinada, se garantiza que read_time aumenta monotónicamente.

TargetChangeType

El tipo de cambio.

Enumeraciones
NO_CHANGE No se ha producido ningún cambio. Se utiliza solo para enviar un resume_token actualizado_Token.
ADD Se han agregado los objetivos.
REMOVE Se han eliminado los objetivos.
CURRENT

Los objetivos reflejan todos los cambios cometidos antes de que los objetivos se agregaran a la transmisión.

Esto se enviará después o con un read_time que es mayor o igual al momento en que se agregaron los objetivos.

Los oyentes pueden esperar este cambio si se desea una semántica de lectura después de la escritura.

RESET

Los objetivos se han restablecido y se devolverá un nuevo estado inicial para los objetivos en cambios posteriores.

Una vez que se complete el estado inicial, CURRENT se devolverá incluso si el objetivo se indicó previamente que fuera CURRENT .

TransaccionOption

Opciones para crear una nueva transacción.

Campos
mode de campo sindical. El modo de la transacción. mode puede ser solo uno de los siguientes:
read_only

ReadOnly

La transacción solo se puede usar para operaciones de lectura.

read_write

ReadWrite

La transacción se puede usar tanto para operaciones de lectura como de escritura.

Solo lectura

Opciones para una transacción que solo se puede usar para leer documentos.

Campos
consistency_selector del campo de unión. El modo de coherencia para esta transacción. Si no se establece, el valor predeterminado es una coherencia fuerte. consistency_selector puede ser sólo uno de los siguientes:
read_time

Timestamp

Lee documentos en el momento dado.

Debe ser una marca de tiempo con precisión de microsegundos dentro de la última hora o, si la recuperación de un punto en el tiempo está habilitada, también puede ser una marca de tiempo de un minuto completo dentro de los últimos 7 días.

Leer escribir

Opciones para una transacción que se puede usar para leer y escribir documentos.

Firestore no permite que las solicitudes de autores de terceros creen lectura-escritura. actas.

Campos
retry_transaction

bytes

Una transacción opcional para volver a intentarlo.

UpdateDocumentRequest

La solicitud de Firestore.UpdateDocument .

Campos
document

Document

Requerido. El documento actualizado. Crea el documento si aún no existe.

update_mask

DocumentMask

Los campos para actualizar. Ninguna de las rutas de campo en la máscara puede contener un nombre reservado.

Si el documento existe en el servidor y tiene campos no mencionados en la máscara, se dejan sin cambios. Los campos a los que se hace referencia en la máscara, pero no presente en el documento de entrada, se eliminan del documento del servidor.

mask

DocumentMask

Los campos para regresar. Si no está configurado, devuelve todos los campos.

Si el documento tiene un campo que no está presente en esta máscara, ese campo no se devolverá en la respuesta.

current_document

Precondition

Una condición previa opcional en el documento. La solicitud fallará si esto se establece y no se cumple con el documento de destino.

Valor

Un mensaje que puede contener cualquiera de los tipos de valor compatibles.

Campos
Union Field value_type . Debe tener un valor establecido. value_type puede ser solo uno de los siguientes:
null_value

NullValue

Un valor nulo.

boolean_value

bool

Un valor booleano.

integer_value

int64

Un valor entero.

double_value

double

Un valor doble.

timestamp_value

Timestamp

Un valor de marca de tiempo.

Preciso solo a los microsegundos. Cuando se almacena, cualquier precisión adicional se redondea.

string_value

string

Un valor de cadena.

La cadena, representada como UTF -8, no debe exceder 1 MIB - 89 bytes. Solo los primeros 1.500 bytes de la representación UTF-8 son considerados por consultas.

bytes_value

bytes

Un valor de bytes.

No debe exceder 1 MIB - 89 bytes. Las consultas sólo consideran los primeros 1.500 bytes.

reference_value

string

Una referencia a un documento. Por ejemplo: projects/{project_id}/databases/{database_id}/documents/{document_path} .

geo_point_value

LatLng

Un valor de punto geo que representa un punto en la superficie de la tierra.

array_value

ArrayValue

Un valor de matriz.

No se puede contener directamente otro valor de matriz, aunque puede contener un mapa que contiene otra matriz.

map_value

MapValue

Un valor de mapa.

Escribir

Una escritura en un documento.

Campos
update_mask

DocumentMask

Los campos para actualizar en esta escritura.

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

update_transforms[]

FieldTransform

Las transformaciones para realizar después de la actualización.

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

current_document

Precondition

Una condición previa opcional en el documento.

La escritura fallará si esto se establece y no se cumple con el documento de destino.

operation de campo de la Unión. La operación para ejecutar. operation puede ser solo uno de los siguientes:
update

Document

Un documento para escribir.

delete

string

Un nombre de documento para eliminar. En el formato: projects/{project_id}/databases/{database_id}/documents/{document_path} .

transform

DocumentTransform

Aplica una transformación a un documento.

Escrito

La solicitud de Firestore.Write .

La primera solicitud crea una transmisión o reanuda una existente de un token.

Al crear una nueva transmisión, el servidor responde con una respuesta que contiene solo una ID y un token, para usar en la siguiente solicitud.

Al reanudar una transmisión, el servidor primero transmite cualquier respuesta más tarde que el token dado, luego una respuesta que contiene solo un token actualizado, para usar en la siguiente solicitud.

Campos
database

string

Requerido. El nombre de la base de datos. En el formato: projects/{project_id}/databases/{database_id} . Esto solo se requiere en el primer mensaje.

stream_id

string

La identificación de la transmisión de escritura para reanudar. Esto solo se puede configurar en el primer mensaje. Cuando se deje vacío, se creará una nueva transmisión de escritura.

writes[]

Write

Las escrituras para aplicar.

Siempre ejecutado atómicamente y en orden. Esto debe estar vacío en la primera solicitud. Esto puede estar vacío en la última solicitud. Esto no debe estar vacío en todas las demás solicitudes.

stream_token

bytes

Un token de transmisión que previamente fue enviado por el servidor.

El cliente debe establecer este campo en el token de WriteResponse más reciente que ha recibido. Esto reconoce que el cliente ha recibido respuestas a este token. Después de enviar esta token, los tokens anteriores ya no pueden usarse.

El servidor puede cerrar la transmisión si hay demasiadas respuestas no reconocidas.

Deje este campo sin crear una nueva transmisión. Para reanudar una transmisión en un punto específico, configure este campo y el campo stream_id .

Deje este campo sin crear una nueva transmisión.

labels

map<string, string>

Etiquetas asociadas con esta solicitud de escritura.

Escritor -respuesta

La respuesta para Firestore.Write .

Campos
stream_id

string

La identificación de la corriente. Solo se establece en el primer mensaje, cuando se creó una nueva transmisión.

stream_token

bytes

Un token que representa la posición de esta respuesta en la corriente. Esto puede ser utilizado por un cliente para reanudar la transmisión en este punto.

Este campo siempre está establecido.

write_results[]

WriteResult

El resultado de aplicar las escrituras.

Este resultado de escritura I-Th se corresponde a la escritura i-th en la solicitud.

commit_time

Timestamp

El momento en que ocurrió el compromiso. Se garantiza que cualquier lectura con una read_time igual o mayor verá los efectos de la escritura.

Escritor

El resultado de aplicar una escritura.

Campos
update_time

Timestamp

La última hora de actualización del documento después de aplicar la escritura. No configurado después de un delete .

Si la escritura realmente no cambió el documento, este será el update_time anterior.

transform_results[]

Value

Los resultados de aplicar cada DocumentTransform.FieldTransform , en el mismo orden.