Package google.firestore.v1beta1

Índice

Firestore

El servicio de Cloud Firestore

Cloud Firestore es una base de datos NoSQL de documentos nativa de la nube, rápida, sin servidores y completamente administrada que simplifica el almacenamiento, la sincronización y la consulta de datos en apps web, de IoT y para dispositivos móviles a escala global. Sus bibliotecas cliente ofrecen sincronización en vivo y soporte sin conexión, al tiempo que las funciones de seguridad y las integraciones en Firebase y Google Cloud Platform agilizan la compilación de apps sin servidores.

BatchGetDocuments

rpc BatchGetDocuments(BatchGetDocumentsRequest) returns (BatchGetDocumentsResponse)

Obtiene varios documentos.

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

Permisos de autorización

Se necesita uno de los siguientes alcances de OAuth:

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

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

BatchWrite

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 desordenadas. El método no permite más de una escritura por documento. Cada escritura se realiza correctamente o falla de forma independiente. Consulta BatchWriteResponse para conocer el estado de éxito de cada escritura.

Si necesitas un conjunto de escrituras aplicado de forma atómica, usa Commit en su lugar.

Permisos de autorización

Se necesita uno de los siguientes alcances de OAuth:

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

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

BeginTransaction

rpc BeginTransaction(BeginTransactionRequest) returns (BeginTransactionResponse)

Inicia una transacción nueva.

Permisos de autorización

Se necesita uno de los siguientes alcances de OAuth:

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

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

Confirmar

rpc Commit(CommitRequest) returns (CommitResponse)

Confirma una transacción y, de forma opcional, actualiza documentos.

Permisos de autorización

Se necesita uno de los siguientes alcances de OAuth:

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

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

CreateDocument

rpc CreateDocument(CreateDocumentRequest) returns (Document)

Crea un documento nuevo.

Permisos de autorización

Se necesita uno de los siguientes alcances de OAuth:

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

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

DeleteDocument

rpc DeleteDocument(DeleteDocumentRequest) returns (Empty)

Borra un documento.

Permisos de autorización

Se necesita uno de los siguientes alcances de OAuth:

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

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

GetDocument

rpc GetDocument(GetDocumentRequest) returns (Document)

Obtiene un solo documento.

Permisos de autorización

Se necesita uno de los siguientes alcances de OAuth:

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

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

ListCollectionIds

rpc ListCollectionIds(ListCollectionIdsRequest) returns (ListCollectionIdsResponse)

Muestra una lista de todos los IDs de colección dentro de un documento.

Permisos de autorización

Se necesita uno de los siguientes alcances de OAuth:

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

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

ListDocuments

rpc ListDocuments(ListDocumentsRequest) returns (ListDocumentsResponse)

Muestra una lista de documentos.

Permisos de autorización

Se necesita uno de los siguientes alcances de OAuth:

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

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

Escuchar

rpc Listen(ListenRequest) returns (ListenResponse)

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

Permisos de autorización

Se necesita uno de los siguientes alcances de OAuth:

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

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

PartitionQuery

rpc PartitionQuery(PartitionQueryRequest) returns (PartitionQueryResponse)

Particiona una consulta con la devolución de cursores de partición que se pueden usar para ejecutar la consulta en paralelo. Los cursores de partición que se muestran son puntos de división que RunQuery puede usar como puntos de partida y de destino para los resultados de las consultas.

Permisos de autorización

Se necesita uno de los siguientes alcances de OAuth:

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

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

Revertir

rpc Rollback(RollbackRequest) returns (Empty)

Revierte una transacción.

Permisos de autorización

Se necesita uno de los siguientes alcances de OAuth:

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

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

RunAggregationQuery

rpc RunAggregationQuery(RunAggregationQueryRequest) returns (RunAggregationQueryResponse)

Ejecuta una consulta de agregación.

En lugar de producir resultados de Document como Firestore.RunQuery, esta API permite ejecutar una agregación para producir una serie de AggregationResult 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 );
Permisos de autorización

Se necesita uno de los siguientes alcances de OAuth:

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

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

RunQuery

rpc RunQuery(RunQueryRequest) returns (RunQueryResponse)

Ejecuta una consulta.

Permisos de autorización

Se necesita uno de los siguientes alcances de OAuth:

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

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

UpdateDocument

rpc UpdateDocument(UpdateDocumentRequest) returns (Document)

Actualiza o inserta un documento.

Permisos de autorización

Se necesita uno de los siguientes alcances de OAuth:

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

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

Escritura

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 de REST).

Permisos de autorización

Se necesita uno de los siguientes alcances de OAuth:

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

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

AggregationResult

El resultado de un solo bucket a partir 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, p. ej.: 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 a la cantidad de funciones de agregación en la consulta.

ArrayValue

Un valor de array.

Campos
values[]

Value

Valores del array.

BatchGetDocumentsRequest

La solicitud para Firestore.BatchGetDocuments.

Campos
database

string

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

documents[]

string

Los nombres de los documentos que se recuperarán. 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 del database especificado. Se quitarán los nombres duplicados.

mask

DocumentMask

Los campos que se deben mostrar. Si no se configura, muestra todos los campos.

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

Campo de unión consistency_selector. El modo de coherencia para esta transacción. Si no está configurado, se establece de forma predeterminada para una coherencia sólida. Las direcciones (consistency_selector) solo pueden ser una de las siguientes opciones:
transaction

bytes

Lee documentos de una transacción.

new_transaction

TransactionOptions

Inicia una nueva transacción y lee los documentos. La configuración predeterminada es una transacción de solo lectura. El nuevo ID de transacción se mostrará como la primera respuesta en la transmisión.

read_time

Timestamp

Lee los documentos tal como estaban en el momento indicado.

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

BatchGetDocumentsResponse

La respuesta transmitida para Firestore.BatchGetDocuments.

Campos
transaction

bytes

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

read_time

Timestamp

Es la hora a la que se leyó el documento. Esto puede aumentar monótonamente. En este caso, se garantiza que los documentos anteriores del flujo de resultados no han cambiado entre su read_time y este.

Campo de unión result. Un solo resultado. Puede estar vacío si el servidor solo muestra una transacción. Las direcciones (result) solo pueden ser una de las siguientes opciones:
found

Document

Un documento que se solicitó.

missing

string

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

BatchWriteRequest

La solicitud para Firestore.BatchWrite.

Campos
database

string

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

writes[]

Write

Las operaciones de escritura que se aplicarán.

El método no aplica escrituras de forma atómica y no garantiza el orden. Cada escritura se realiza correctamente o falla de forma independiente. No puedes escribir en el mismo documento más de una vez por solicitud.

labels

map<string, string>

Las etiquetas asociadas con esta escritura por lotes.

BatchWriteResponse

Es la respuesta de Firestore.BatchWrite.

Campos
write_results[]

WriteResult

Es el resultado de aplicar las operaciones de escritura.

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

status[]

Status

El estado de aplicación de las operaciones de escritura.

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

BeginTransactionRequest

La solicitud para Firestore.BeginTransaction.

Campos
database

string

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

options

TransactionOptions

Son las opciones de la transacción. La configuración predeterminada es una transacción de lectura y escritura.

BeginTransactionResponse

La respuesta para Firestore.BeginTransaction.

Campos
transaction

bytes

Es la transacción que se inició.

BitSequence

Es una secuencia de bits, codificada en un array de bytes.

Cada byte del array de bytes bitmap almacena 8 bits de la secuencia. La única excepción es el último byte, que puede almacenar 8 bits o menos. padding define la cantidad de bits del último byte que se ignorará como “relleno”. Los valores de estos bits de “relleno” no se especifican y deben ignorarse.

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

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

Campos
bitmap

bytes

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

padding

int32

La cantidad de bits del último byte de bitmap que se ignorarán como “padding”. Si la longitud de bitmap es cero, este valor debe ser 0. De lo contrario, este valor debe estar entre 0 y 7 inclusive.

BloomFilter

Un filtro de flores (https://en.wikipedia.org/wiki/Bloom_filter).

El filtro de flores genera un hash de las entradas con MD5 y trata el hash resultante de 128 bits como 2 valores hash distintos de 64 bits, interpretados como números enteros sin firma con la codificación de complemento de 2.

Estos dos valores de hash, llamados h1 y h2, se usan para calcular los valores de hash hash_count con la fórmula, a partir de i=0:

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

Estos valores resultantes se toman en módulo la cantidad de bits en el filtro de flores para obtener los bits del filtro de flores para probar la entrada dada.

Campos
bits

BitSequence

Los datos del filtro de flores.

hash_count

int32

La cantidad de hashes que usa el algoritmo.

CommitRequest

La solicitud para Firestore.Commit.

Campos
database

string

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

writes[]

Write

Las operaciones de escritura que se aplicarán.

Siempre se ejecuta de forma atómica y en orden.

transaction

bytes

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

CommitResponse

La respuesta para Firestore.Commit.

Campos
write_results[]

WriteResult

Es el resultado de aplicar las operaciones de escritura.

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

commit_time

Timestamp

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

CreateDocumentRequest

La solicitud para Firestore.CreateDocument.

Campos
parent

string

Obligatorio. El recurso superior Por ejemplo, projects/{project_id}/databases/{database_id}/documents o projects/{project_id}/databases/{database_id}/documents/chatrooms/{chatroom_id}.

collection_id

string

Obligatorio. El ID de colección, en relación con parent, para la lista. Por ejemplo: chatrooms.

document_id

string

El ID de documento asignado por el cliente que se usará en este documento.

Opcional. Si no se especifica, el servicio asignará un ID.

document

Document

Obligatorio. El documento que se creará. No se debe establecer name.

mask

DocumentMask

Los campos que se deben mostrar. Si no se configura, muestra todos los campos.

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

Cursor

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

Campos
values[]

Value

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

Puede contener menos valores de los que se especifican en la cláusula order by.

before

bool

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

DeleteDocumentRequest

La solicitud para Firestore.DeleteDocument.

Campos
name

string

Obligatorio. El nombre del recurso del documento que se borrará. 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 el documento de destino lo configura y no la cumple.

Documento

Un documento de Firestore

No debe exceder los 1 MiB y 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

Solo salida. Es la hora en la que se creó el documento.

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

update_time

Timestamp

Solo salida. La hora en 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 con el read_time de una consulta.

DocumentChange

Cambió un Document.

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

Si se ven afectados varios mensajes DocumentChange, es posible que se muestren varios mensajes para el mismo cambio lógico.

Campos
document

Document

Es el nuevo estado de Document.

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

target_ids[]

int32

Es un conjunto de IDs de destinos que coinciden con este documento.

removed_target_ids[]

int32

Es un conjunto de IDs de destino que ya no coinciden con este documento.

DocumentDelete

Se borró una Document.

Puede ser el resultado de varias writes, incluidas las actualizaciones, la última de las cuales borró Document.

Si se ven afectados varios mensajes DocumentDelete, es posible que se muestren varios mensajes para la misma eliminación lógica.

Campos
document

string

El nombre del recurso de Document que se borró.

removed_target_ids[]

int32

Un conjunto de IDs de destino para destinos que antes 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 que el commit_time de la acción de borrar.

DocumentMask

Un conjunto de rutas de campo en un documento. Se usa para restringir una operación get o update de un documento a un subconjunto de sus campos. Esto es diferente de las máscaras de campo estándar, ya que siempre se limita a un Document y considera la naturaleza dinámica de Value.

Campos
field_paths[]

string

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

DocumentRemove

Se quitó un elemento Document de la vista de los destinos.

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

Si se ven afectados varios mensajes DocumentRemove, es posible que se muestren varios mensajes para la misma escritura o eliminación lógica.

Campos
document

string

El nombre del recurso de Document que está fuera de la vista.

removed_target_ids[]

int32

Un conjunto de IDs de destino para destinos que antes 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 que el elemento commit_time del cambio, la eliminación o la eliminación.

DocumentTransform

Es la transformación de un documento.

Campos
document

string

El nombre del documento que se transformará.

field_transforms[]

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.

Campos
field_path

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:
set_to_server_value

ServerValue

Establece el campo en el valor de servidor dado.

increment

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

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

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.

append_missing_elements

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.

remove_all_from_array

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.

ExecutionStats

Estadísticas de ejecución para la consulta.

Campos
results_returned

int64

Cantidad total de resultados mostrados, incluidos documentos, proyecciones, resultados de agregación y claves.

execution_duration

Duration

Tiempo total para ejecutar la consulta en el backend.

read_operations

int64

Total de operaciones de lectura facturables.

debug_stats

Struct

Estadísticas de depuración de la ejecución de la consulta. Ten en cuenta que las estadísticas de depuración están sujetas a cambios a medida que Firestore evoluciona. It could include: { "indexes_entries_scanned": "1000", "documents_scanned": "20", "billing_details" : { "documents_billable": "20", "index_entries_billable": "1000", "min_query_cost": "0" } }

ExistenceFilter

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

Campos
target_id

int32

El ID de destino al que se aplica este filtro.

count

int32

La cantidad total de documentos que coinciden con target_id.

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

El cliente puede usar el filtro de Bloom unchanged_names para ayudar con esta determinación al probar 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 destino.

unchanged_names

BloomFilter

Un filtro de Bloom que, a pesar de su nombre, contiene las codificaciones de bytes UTF-8 de los nombres de los 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 Bloom se puede omitir a discreción del servidor, por ejemplo, si se considera que el cliente no lo utilizará o si su cálculo o transmisión es demasiado costoso en términos de procesamiento. Los clientes deben manejar correctamente la ausencia de este campo recurriendo a la lógica utilizada antes de que existiera este campo; es decir, volver a agregar el destino sin un token de reanudación para averiguar qué documentos de la caché del cliente están desincronizados.

ExplainMetrics

Explica las métricas de la consulta.

Campos
plan_summary

PlanSummary

Información de la fase de planificación para la consulta.

execution_stats

ExecutionStats

Estadísticas agregadas de la ejecución de la consulta. Solo está presente cuando se configura ExplainOptions.analyze como verdadero.

ExplainOptions

Explica las opciones para la consulta.

Campos
analyze

bool

Opcional. Indica si se debe ejecutar esta consulta.

Cuando sea falso (el valor predeterminado), se planificará la consulta y solo se mostrarán las métricas de las etapas de planificación.

Cuando es verdadero, la consulta se planificará y ejecutará, y se mostrarán los resultados completos de la consulta junto con las métricas de las etapas de planificación y ejecución.

GetDocumentRequest

La solicitud para Firestore.GetDocument.

Campos
name

string

Obligatorio. El nombre de recurso del documento que se obtendrá. En el formato: projects/{project_id}/databases/{database_id}/documents/{document_path}.

mask

DocumentMask

Los campos que se deben mostrar. Si no se configura, muestra todos los campos.

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

Campo de unión consistency_selector. El modo de coherencia para esta transacción. Si no está configurado, se establece de forma predeterminada para una coherencia sólida. Las direcciones (consistency_selector) solo pueden ser una de las siguientes opciones:
transaction

bytes

Lee el documento en una transacción.

read_time

Timestamp

Lee la versión del documento en un momento determinado.

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

ListCollectionIdsRequest

La solicitud para Firestore.ListCollectionIds.

Campos
parent

string

Obligatorio. Es el documento superior. 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

La cantidad máxima de resultados que se mostrarán.

page_token

string

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

Campo de unión consistency_selector. El modo de coherencia para esta solicitud. Si no está configurado, se establece de forma predeterminada para una coherencia sólida. Las direcciones (consistency_selector) solo pueden ser una de las siguientes opciones:
read_time

Timestamp

Lee los documentos tal como estaban en el momento indicado.

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

ListCollectionIdsResponse

Es la respuesta de Firestore.ListCollectionIds.

Campos
collection_ids[]

string

Son los IDs de la colección.

next_page_token

string

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

ListDocumentsRequest

La solicitud para Firestore.ListDocuments.

Campos
parent

string

Obligatorio. El nombre del recurso superior. 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 colección, en relación con parent, para la lista.

Por ejemplo, chatrooms o messages.

Esto es opcional y, cuando no se proporcione, Firestore mostrará una lista de los documentos de todas las colecciones en el parent proporcionado.

page_size

int32

Opcional. La cantidad máxima de documentos que se mostrarán en una sola respuesta.

Firestore puede mostrar menos que este valor.

page_token

string

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

Proporciona esto para recuperar la página siguiente. Cuando se realiza la paginación, todos los demás parámetros (excepto page_size) deben coincidir con los valores establecidos en la solicitud que generó el token de la página.

order_by

string

Opcional. El orden opcional de los documentos que se mostrarán.

Por ejemplo: priority desc, __name__ desc.

Esto duplica el ORDER BY que se usa en las consultas de Firestore, pero en una representación de string. Cuando está ausente, los documentos se ordenan según __name__ ASC.

mask

DocumentMask

Opcional. Los campos que se deben mostrar. Si no se configura, muestra todos los campos.

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

show_missing

bool

Si la lista debe mostrar los documentos que faltan.

Falta un documento si no existe, pero hay subdocumentos anidados debajo. Si es verdadero, los documentos faltantes se mostrarán con una clave, pero no tendrán campos ni campos create_time ni update_time configurados.

Las solicitudes con show_missing no pueden especificar where ni order_by.

Campo de unión consistency_selector. El modo de coherencia para esta transacción. Si no está configurado, se establece de forma predeterminada para una coherencia sólida. Las direcciones (consistency_selector) solo pueden ser una de las siguientes opciones:
transaction

bytes

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

read_time

Timestamp

Realiza la lectura en el momento indicado.

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

ListDocumentsResponse

La respuesta para Firestore.ListDocuments.

Campos
documents[]

Document

Los documentos encontrados.

next_page_token

string

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

Si se omite este campo, no habrá páginas siguientes.

ListenRequest

Una solicitud para Firestore.Listen

Campos
database

string

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

labels

map<string, string>

Etiquetas asociadas con este cambio de objetivo.

Campo de unión target_change. El objetivo admitido cambia. Las direcciones (target_change) solo pueden ser una de las siguientes opciones:
add_target

Target

Un destino para agregar a este flujo.

remove_target

int32

El ID de un destino que se quitará de esta transmisión.

ListenResponse

La respuesta para Firestore.Listen.

Campos
Campo de unión response_type. Son las respuestas admitidas. Las direcciones (response_type) solo pueden ser una de las siguientes opciones:
target_change

TargetChange

Los objetivos cambiaron.

document_change

DocumentChange

Cambió un Document.

document_delete

DocumentDelete

Se borró una Document.

document_remove

DocumentRemove

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

filter

ExistenceFilter

Un filtro que se aplica al conjunto de documentos que se mostraron antes para el destino determinado.

Se muestra cuando se pueden quitar los documentos del destino determinado, pero se desconocen los documentos exactos.

MapValue

Un valor de mapa

Campos
fields

map<string, Value>

Los campos del mapa

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

PartitionQueryRequest

La solicitud para Firestore.PartitionQuery.

Campos
parent

string

Obligatorio. El nombre del recurso superior. En el formato: projects/{project_id}/databases/{database_id}/documents. No se admiten los nombres de recursos de documentos; solo se pueden especificar nombres de recursos de base de datos.

partition_count

int64

La cantidad máxima deseada de puntos de partición. Las particiones se pueden mostrar en varias páginas de resultados. El número debe ser positivo. La cantidad real de particiones que se muestran puede ser menor.

Por ejemplo, esto puede establecerse en una menos que la cantidad de consultas paralelas que se ejecutarán o, en la ejecución de un trabajo de canalización de datos, una menos que la cantidad de trabajadores o instancias de procesamiento disponibles.

page_token

string

El valor next_page_token que se muestra de una llamada anterior a PartitionQuery que se puede usar para obtener un conjunto adicional de resultados. No hay garantías de orden entre los conjuntos de resultados. Por lo tanto, usar varios conjuntos de resultados requerirá la combinación de los diferentes conjuntos de resultados.

Por ejemplo, se pueden mostrar dos llamadas posteriores que usan un page_token:

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

Para obtener un conjunto de resultados completo ordenado según los resultados de la consulta suministrada a PartitionQuery, los conjuntos de resultados deben combinarse: cursor A, cursor B, cursor M, cursor Q, cursor U, cursor W

page_size

int32

La cantidad máxima de particiones que se mostrarán en esta llamada, sujeta a partition_count.

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

Campo de unión query_type. La consulta que se particionará. Las direcciones (query_type) solo pueden ser una de las siguientes opciones:
structured_query

StructuredQuery

Una consulta estructurada. La consulta debe especificar la colección con todos los elementos subordinados y ordenarse de forma ascendente por nombre. No se admiten otros filtros, valores de ordenamiento, límites, desplazamientos ni cursores de inicio y fin.

Campo de unión consistency_selector. El modo de coherencia para esta solicitud. Si no está configurado, se establece de forma predeterminada para una coherencia sólida. Las direcciones (consistency_selector) solo pueden ser una de las siguientes opciones:
read_time

Timestamp

Lee los documentos tal como estaban en el momento indicado.

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

PartitionQueryResponse

La respuesta para Firestore.PartitionQuery.

Campos
partitions[]

Cursor

Resultados de la partición. Cada partición es un punto de división que puede usar RunQuery como punto de partida o de finalización 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 de acuerdo con el mismo orden que los resultados de la consulta suministrada a PartitionQuery.

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

  • consulta, end_at A
  • consulta, inicio_en A, final_en B
  • consulta, inicio_en B

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

next_page_token

string

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

PlanSummary

Información de la fase de planificación para la consulta.

Campos
indexes_used[]

Struct

Los índices seleccionados para la consulta. For example: [ {"query_scope": "Collection", "properties": "(foo ASC, name ASC)"}, {"query_scope": "Collection", "properties": "(bar ASC, name ASC)"} ]

Condición previa

Es una condición previa de un documento que se usa para operaciones condicionales.

Campos
Campo de unión condition_type. El tipo de condición previa. Las direcciones (condition_type) solo pueden ser una de las siguientes opciones:
exists

bool

Cuando se establece en true, el documento de destino debe existir. Cuando se configura como 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.

RollbackRequest

La solicitud para Firestore.Rollback.

Campos
database

string

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

transaction

bytes

Obligatorio. La transacción que se revertirá.

RunAggregationQueryRequest

La solicitud para Firestore.RunAggregationQuery.

Campos
parent

string

Obligatorio. El nombre del recurso superior. 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.

explain_options

ExplainOptions

Opcional. Explica las opciones para la consulta. Si se configura, se mostrarán estadísticas de consulta adicionales. De lo contrario, solo se mostrarán los resultados de la consulta.

Campo de unión query_type. La consulta que se ejecutará. Las direcciones (query_type) solo pueden ser una de las siguientes opciones:
structured_aggregation_query

StructuredAggregationQuery

Una consulta de agregación.

Campo de unión consistency_selector. El modo de coherencia para la consulta se establece de forma predeterminada en la coherencia sólida. Las direcciones (consistency_selector) solo pueden ser una de las siguientes opciones:
transaction

bytes

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

El valor aquí es el ID de transacción opaco en el que se ejecutará la consulta.

new_transaction

TransactionOptions

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

El nuevo ID de transacción se mostrará como la primera respuesta en la transmisión.

read_time

Timestamp

Ejecuta la consulta en la marca de tiempo indicada.

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

RunAggregationQueryResponse

La respuesta para Firestore.RunAggregationQuery.

Campos
result

AggregationResult

Un solo resultado de agregación.

No está presente cuando se informa un progreso parcial.

transaction

bytes

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

Solo está presente en la primera respuesta cuando la solicitud solicitó iniciar una transacción nueva.

read_time

Timestamp

El momento en el que se calculó el resultado agregado. Esto siempre aumenta de forma monótona; en este caso, se garantiza que el AggregationResult anterior en el flujo de resultados no haya cambiado entre su read_time y este.

Si la consulta no muestra resultados, se enviará una respuesta con read_time y sin result, que representa la hora en la que se ejecutó la consulta.

explain_metrics

ExplainMetrics

Métricas de explicación de consultas Esto solo está presente cuando se proporciona el RunAggregationQueryRequest.explain_options y se envía solo una vez con la última respuesta del flujo.

RunQueryRequest

La solicitud para Firestore.RunQuery.

Campos
parent

string

Obligatorio. El nombre del recurso superior. 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.

explain_options

ExplainOptions

Opcional. Explica las opciones para la consulta. Si se configura, se mostrarán estadísticas de consulta adicionales. De lo contrario, solo se mostrarán los resultados de la consulta.

Campo de unión query_type. La consulta que se ejecutará. Las direcciones (query_type) solo pueden ser una de las siguientes opciones:
structured_query

StructuredQuery

Una consulta estructurada.

Campo de unión consistency_selector. El modo de coherencia para esta transacción. Si no está configurado, se establece de forma predeterminada para una coherencia sólida. Las direcciones (consistency_selector) solo pueden ser una de las siguientes opciones:
transaction

bytes

Ejecuta la consulta dentro de una transacción que ya esté activa.

El valor aquí es el ID de transacción opaco en el que se ejecutará la consulta.

new_transaction

TransactionOptions

Inicia una nueva transacción y lee los documentos. La configuración predeterminada es una transacción de solo lectura. El nuevo ID de transacción se mostrará como la primera respuesta en la transmisión.

read_time

Timestamp

Lee los documentos tal como estaban en el momento indicado.

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

RunQueryResponse

La respuesta para Firestore.RunQuery.

Campos
transaction

bytes

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

document

Document

Un resultado de consulta, no establecido cuando se informa el progreso parcial

read_time

Timestamp

Es la hora a la que se leyó el documento. Esto puede aumentar de forma monótona. En este caso, se garantiza que los documentos anteriores del flujo de resultados no cambiaron entre su read_time y este.

Si la consulta no muestra resultados, se enviará una respuesta con read_time y sin document, que representa la hora en la que se ejecutó la consulta.

skipped_results

int32

La cantidad de resultados que se omitieron debido a un desplazamiento entre la última respuesta y la respuesta actual.

explain_metrics

ExplainMetrics

Métricas de explicación de consultas Esto solo está presente cuando se proporciona el RunQueryRequest.explain_options y se envía solo una vez con la última respuesta del flujo.

Campo de unión continuation_selector. El modo de continuación para la consulta. Si está presente, indica que finalizó la transmisión de respuesta de la consulta actual. Se puede configurar con o sin un document presente, pero cuando se configura, no se muestran más resultados. continuation_selector puede ser solo uno de los siguientes:
done

bool

Si está presente, Firestore completó la solicitud y no se mostrarán más documentos.

StructuredAggregationQuery

Consulta de Firestore para ejecutar una agregación en una StructuredQuery.

Campos
aggregations[]

Aggregation

Opcional. Es la serie de agregaciones que se aplicarán a los resultados de structured_query.

Requisitos:

  • Un mínimo de una y un máximo de cinco agregaciones por consulta.
Campo de unión query_type. La consulta base sobre la que se agregará. Las direcciones (query_type) solo pueden ser una de las siguientes opciones:
structured_query

StructuredQuery

Consulta estructurada anidada.

Agregación

Define una agregación que produce un solo resultado.

Campos
alias

string

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

Si no se proporciona, Firestore elegirá un nombre predeterminado con 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 (
  ...
);

pasa a ser:

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 (
  ...
);

Requisitos:

  • Debe ser único en todos los alias de agregación.
  • Cumple con las limitaciones de document field name.
Campo de unión operator. El tipo de agregación que se realizará, obligatoria. Las direcciones (operator) solo pueden ser una de las siguientes opciones:
count

Count

Agregador de recuento.

sum

Sum

Agregador de suma.

avg

Avg

Agregador promedio.

Prom

Promedio de los valores del campo solicitado.

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

  • Si los valores agregados contienen NaN, muestra NaN. Las matemáticas de Infinity siguen los estándares IEEE-754.

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

  • Siempre muestra el resultado como un doble.

Campos
field

FieldReference

El campo en el que se realiza la agregación.

Recuento

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 la cantidad máxima de documentos que se deben contar.

Esto proporciona una forma de establecer un límite superior para la cantidad de documentos que se deben analizar, lo que limita la latencia y el costo.

Sin especificar se interpreta como sin límite.

Ejemplo de alto nivel:

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

Requisitos:

  • Debe ser mayor que cero cuando esté presente.

Sum

Suma de los valores del campo solicitado.

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

  • Si los valores agregados contienen NaN, muestra NaN. Las matemáticas de Infinity siguen los estándares IEEE-754.

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

  • Muestra un número entero de 64 bits si todos los números agregados son números enteros y el resultado de la suma no desborda. De lo contrario, el resultado se muestra como un doble. Ten en cuenta que, incluso si todos los valores agregados son números enteros, el resultado se muestra como un doble si no puede caber dentro de un número entero de 64 bits firmado. Cuando esto ocurre, el valor que se muestra perderá precisión.

  • Cuando se produce un subdesbordamiento, 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 se deben almacenar como números enteros sobre números de punto flotante.

Campos
field

FieldReference

El campo en el que se realiza la agregación.

StructuredQuery

Una consulta de Firestore.

Campos
select

Projection

Subconjunto opcional de los campos que se mostrarán.

Esto actúa como un elemento DocumentMask sobre los documentos que se muestran en una consulta. Si no se establece, se supone que el llamador quiere que se muestren todos los campos.

from[]

CollectionSelector

Las colecciones a consultar.

where

Filter

El filtro que se aplicará.

order_by[]

Order

El orden que se aplica a los resultados de la consulta.

Firestore permite que los emisores proporcionen un orden completo, uno parcial o ninguno. En todos los casos, Firestore garantiza un orden estable con las siguientes reglas:

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

Los campos se agregan con la misma dirección de orden que el último orden especificado o con "ASCENDING" 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

Es un posible prefijo de una posición en el conjunto de resultados en el que puede comenzar 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 se ordenan 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 de los que se encuentran en el ORDER BY proporcionado.

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

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

A diferencia de OFFSET, que requiere escanear los primeros N resultados para omitirse, un cursor de inicio permite que la consulta comience en una posición lógica. No es necesario que esta posición coincida con un resultado real; se desplazará hacia delante desde esta posición para encontrar el siguiente documento.

Requisitos:

  • La cantidad de valores no puede ser mayor que la cantidad de campos especificados en la cláusula ORDER BY.
end_at

Cursor

Es un posible prefijo de una posición en el conjunto de resultados en el que finaliza la consulta.

Es similar a START_AT, pero este controla la posición de finalización en lugar de la posición inicial.

Requisitos:

  • La cantidad de valores no puede ser mayor que la cantidad de campos especificados en la cláusula ORDER BY.
offset

int32

La cantidad de documentos que se deben omitir antes de mostrar el primer resultado.

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

Requisitos:

  • Si se especifica, el valor debe ser mayor o igual que cero.
limit

Int32Value

La cantidad máxima de resultados que se mostrarán.

Se aplica después de todas las demás restricciones.

Requisitos:

  • Si se especifica, el valor debe ser mayor o igual que cero.

CollectionSelector

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

Campos
collection_id

string

El ID de la colección. Cuando se establece, selecciona solo colecciones con este ID.

all_descendants

bool

Cuando es falso, solo selecciona colecciones que son elementos secundarios inmediatos del parent especificado en el RunQueryRequest contenedor. Cuando es verdadero, selecciona todas las colecciones subordinadas.

CompositeFilter

Es un filtro que combina varios filtros más con el operador determinado.

Campos
op

Operator

Operador para combinar varios filtros.

filters[]

Filter

Es la lista de filtros que se combinarán.

Requisitos:

  • Hay al menos un filtro presente.

Operador

Un operador de filtro compuesto.

Enumeradores
OPERATOR_UNSPECIFIED No se especifica. No se debe usar este valor.
AND Los documentos deben cumplir con todos los filtros combinados.
OR Los documentos deben cumplir con al menos uno de los filtros combinados.

Dirección

Una dirección de ordenamiento.

Enumeradores
DIRECTION_UNSPECIFIED No se especifica.
ASCENDING Ascendente.
DESCENDING Descendente.

FieldFilter

Un filtro en un campo específico.

Campos
field

FieldReference

El campo que se usará para filtrar.

op

Operator

Operador que se usará para filtrar.

value

Value

Valor con el que se realizará la comparación.

Operador

Un operador de filtro de campo.

Enumeradores
OPERATOR_UNSPECIFIED No se especifica. No se debe usar este valor.
LESS_THAN

El field especificado es menor que el value especificado.

Requisitos:

  • Ese field está primero en order_by.
LESS_THAN_OR_EQUAL

El field especificado es menor o igual que el value especificado.

Requisitos:

  • Ese field está primero en order_by.
GREATER_THAN

El field especificado es mayor que el value especificado.

Requisitos:

  • Ese field está primero en order_by.
GREATER_THAN_OR_EQUAL

El field especificado es mayor o igual que el value especificado.

Requisitos:

  • Ese field está primero en order_by.
EQUAL El field especificado es igual al value especificado.
NOT_EQUAL

El field especificado no es igual al value especificado.

Requisitos:

  • No hay otros NOT_EQUAL, NOT_IN, IS_NOT_NULL o IS_NOT_NAN.
  • Ese field está primero en order_by.
ARRAY_CONTAINS La field proporcionada es un array que contiene la value especificada.
IN

El field dado es igual a, al menos, un valor del array dado.

Requisitos:

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

El field dado es un array que contiene cualquiera de los valores del array dado.

Requisitos:

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

El valor de field no está en el array dado.

Requisitos:

  • Ese value es un ArrayValue no vacío con un máximo de 10 valores.
  • No hay otros OR, IN, ARRAY_CONTAINS_ANY, NOT_IN, NOT_EQUAL, IS_NOT_NULL o IS_NOT_NAN.
  • Ese field está primero en order_by.

FieldReference

Una referencia a un campo en un documento, p. ej., stats.operations.

Campos
field_path

string

Una referencia a un campo en un documento.

Requisitos:

  • DEBE ser una cadena de segmentos delimitada por puntos (.), donde cada segmento cumple con las limitaciones de document field name.

Filtro

Un filtro

Campos
Campo de unión filter_type. El tipo de filtro. Las direcciones (filter_type) solo pueden ser una de las siguientes opciones:
composite_filter

CompositeFilter

Un filtro compuesto.

field_filter

FieldFilter

Un filtro en el campo de un documento.

unary_filter

UnaryFilter

Un filtro que toma exactamente un argumento.

Pedidos

Un pedido en un campo.

Campos
field

FieldReference

El campo que se usará para ordenar.

direction

Direction

La dirección en la que se debe ordenar. La configuración predeterminada es ASCENDING.

Proyección

La proyección de los campos del documento que se mostrarán.

Campos
fields[]

FieldReference

Los campos que se deben mostrar.

Si está vacío, se muestran todos los campos. Para que solo se muestre el nombre del documento, usa ['__name__'].

UnaryFilter

Un filtro con un solo operando.

Campos
op

Operator

El operador unario que se aplicará.

Campo de unión operand_type. El argumento del filtro. Las direcciones (operand_type) solo pueden ser una de las siguientes opciones:
field

FieldReference

Campo en el que se aplica el operador.

Operador

Un operador unario.

Enumeradores
OPERATOR_UNSPECIFIED No se especifica. No se debe usar este valor.
IS_NAN El field especificado es igual a NaN.
IS_NULL El field especificado es igual a NULL.
IS_NOT_NAN

El field especificado no es igual a NaN.

Requisitos:

  • No hay otros NOT_EQUAL, NOT_IN, IS_NOT_NULL o IS_NOT_NAN.
  • Ese field está primero en order_by.
IS_NOT_NULL

El field especificado no es igual a NULL.

Requisitos:

  • Un solo NOT_EQUAL, NOT_IN, IS_NOT_NULL o IS_NOT_NAN.
  • Ese field está primero en order_by.

Diana

Es una especificación de un conjunto de documentos que se escucharán.

Campos
target_id

int32

El ID de destino que identifica al destino en la transmisión. Debe ser un número positivo distinto de cero.

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

Ten en cuenta que si el cliente envía varias solicitudes AddTarget sin un ID, el orden de los ID que se muestran en TargetChage.target_ids no está definido. Por lo tanto, los clientes deben proporcionar un ID de destino en lugar de depender del servidor para asignar uno.

Si el valor de target_id no es cero, no debe haber un destino activo existente en esta transmisión con el mismo ID.

once

bool

Si el objetivo se debe quitar una vez que sea actual y coherente.

expected_count

Int32Value

La cantidad de documentos que coincidieron por última vez con la consulta en el token de reanudación o de lectura.

Este valor solo es relevante cuando se proporciona un resume_type. Si este valor está presente y es mayor que cero, significa que el cliente desea que se incluya ExistenceFilter.unchanged_names en la respuesta.

Campo de unión target_type. Es el tipo de objetivo que se escuchará. Las direcciones (target_type) solo pueden ser una de las siguientes opciones:
query

QueryTarget

Un objetivo especificado por una consulta.

documents

DocumentsTarget

Es un destino especificado por un conjunto de nombres de documentos.

Campo de unión resume_type. Cuándo comenzar a escuchar

Si se especifica, solo se mostrarán los documentos coincidentes que se hayan actualizado DESPUÉS de resume_token o read_time. De lo contrario, se mostrarán todos los documentos coincidentes antes de cualquier cambio posterior. resume_type puede ser solo uno de los siguientes:

resume_token

bytes

Un token de reanudación de un TargetChange anterior para un destino idéntico.

No se admite el uso de un token de reanudación con un destino diferente y es posible que falle.

read_time

Timestamp

Comienza a escuchar después de un read_time específico.

En este momento, el cliente debe conocer el estado de los documentos coincidentes.

DocumentsTarget

Un destino especificado por un conjunto de nombres de documentos.

Campos
documents[]

string

Los nombres de los documentos que se recuperarán. 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 del database especificado. Se quitarán los nombres duplicados.

QueryTarget

Un objetivo especificado por una consulta.

Campos
parent

string

El nombre del recurso superior. 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 que se ejecutará. Las direcciones (query_type) solo pueden ser una de las siguientes opciones:
structured_query

StructuredQuery

Una consulta estructurada.

TargetChange

Cambiaron los objetivos en pantalla.

Campos
target_change_type

TargetChangeType

Es el tipo de cambio que se produjo.

target_ids[]

int32

Son los IDs de los destinos que cambiaron.

Si este campo está vacío, el cambio se aplicará a todos los objetivos.

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

cause

Status

El error que generó este cambio, si corresponde.

resume_token

bytes

Un token que se puede usar para reanudar la transmisión de la target_ids determinada o todos los destinos si target_ids está vacío.

No se estableció en todos los cambios de objetivos.

read_time

Timestamp

El read_time coherente para el target_ids determinado (se omite cuando los target_ids no están en una instantánea coherente).

Se garantiza que la transmisión enviará una read_time con target_ids vacío cada vez que toda la transmisión llegue a una nueva instantánea coherente. Se garantiza que los mensajes ADD, CURRENT y RESET generen (en algún momento) una nueva instantánea coherente, mientras que los mensajes NO_CHANGE y REMOVE no lo son.

Para una transmisión determinada, se garantiza que read_time aumente monótonamente.

TargetChangeType

Es el tipo de cambio.

Enumeradores
NO_CHANGE No se ha producido ningún cambio. Solo se usa para enviar un resume_token actualizado.
ADD Se agregaron los objetivos.
REMOVE Se quitaron los objetivos.
CURRENT

Los objetivos reflejan todos los cambios confirmados antes de que se agregaran los objetivos al flujo.

Se enviará después de la hora en la que se agregaron los objetivos o con una read_time igual o superior.

Los objetos de escucha pueden esperar este cambio si se desean semánticas de lectura después de escritura.

RESET

Los destinos se restablecieron y, en los cambios posteriores, se mostrará un nuevo estado inicial para ellos.

Después de que se complete el estado inicial, se mostrará CURRENT, incluso si antes se indicó que el destino era CURRENT.

TransactionOptions

Opciones para crear una transacción nueva.

Campos
Campo de unión mode. Es el modo de la transacción. Las direcciones (mode) solo pueden ser una de las siguientes opciones:
read_only

ReadOnly

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

read_write

ReadWrite

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

ReadOnly

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

Campos
Campo de unión consistency_selector. El modo de coherencia para esta transacción. Si no está configurado, se establece de forma predeterminada para una coherencia sólida. Las direcciones (consistency_selector) solo pueden ser una de las siguientes opciones:
read_time

Timestamp

Lee documentos en un momento determinado.

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

ReadWrite

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

Firestore no permite que las solicitudes de autenticación de terceros creen transacciones de lectura y escritura.

Campos
retry_transaction

bytes

Transacción opcional para volver a intentarlo.

UpdateDocumentRequest

La solicitud para Firestore.UpdateDocument.

Campos
document

Document

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

update_mask

DocumentMask

Los campos que se actualizarán. Ninguna de las rutas de campo de la máscara puede contener un nombre reservado.

Si el documento existe en el servidor y tiene campos a los que no se hace referencia en 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.

mask

DocumentMask

Los campos que se deben mostrar. Si no se configura, muestra todos los campos.

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

current_document

Precondition

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

Valor

Un mensaje que puede contener cualquiera de los tipos de valores admitidos.

Campos
Campo de unión value_type. Debe tener un valor establecido. Las direcciones (value_type) solo pueden ser una de las siguientes opciones:
null_value

NullValue

Es un valor nulo.

boolean_value

bool

Un valor booleano

integer_value

int64

Es un valor entero.

double_value

double

Es un valor doble.

timestamp_value

Timestamp

Un valor de marca de tiempo

Es preciso solo hasta microsegundos. Cuando se almacena, cualquier precisión adicional se redondea hacia abajo.

string_value

string

Es un valor de cadena.

La string, representada como UTF-8, no debe exceder los 1 MiB y 89 bytes. Las consultas solo consideran los primeros 1,500 bytes de la representación UTF-8.

bytes_value

bytes

Un valor en bytes.

No debe exceder los 1 MiB a 89 bytes. Las consultas solo consideran los primeros 1,500 bytes.

reference_value

string

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

geo_point_value

LatLng

Es un valor de punto geográfico que representa un punto en la superficie de la Tierra.

array_value

ArrayValue

Un valor de array.

No puede contener directamente otro valor de array, aunque puede contener un mapa que contenga otro array.

map_value

MapValue

Un valor de mapa

Escritura

Una escritura en un documento.

Campos
update_mask

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.

update_transforms[]

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.

current_document

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

Document

Un documento para escribir

delete

string

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

transform

DocumentTransform

Aplica una transformación a un documento.

WriteRequest

La solicitud para Firestore.Write.

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

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

Cuando reanudas una transmisión, el servidor primero transmite cualquier respuesta posterior al token dado y, a continuación, una respuesta que contiene solo un token actualizado, para usar en la siguiente solicitud.

Campos
database

string

Obligatorio. Es el nombre de la base de datos. En el formato: projects/{project_id}/databases/{database_id}. Esto solo es obligatorio en el primer mensaje.

stream_id

string

El ID de la transmisión de escritura que se reanudará. Esta opción solo se puede configurar en el primer mensaje. Cuando se deje vacío, se creará una nueva transmisión de escritura.

writes[]

Write

Las operaciones de escritura que se aplicarán.

Siempre se ejecuta de forma atómica y en orden. Debe estar vacío en la primera solicitud. Puede estar vacío en la última solicitud. No debe estar vacío en todas las demás solicitudes.

stream_token

bytes

Un token de transmisión que el servidor envió anteriormente.

El cliente debe establecer este campo en el token del WriteResponse más reciente que recibió. Esto confirma que el cliente recibió respuestas hasta este token. Después de enviar este token, es posible que los tokens anteriores no se usen más.

Es posible que el servidor cierre la transmisión si hay demasiadas respuestas sin confirmar.

Deja este campo sin configurar cuando crees una transmisión nueva. Para reanudar una transmisión en un punto específico, establece este campo y el campo stream_id.

Deja este campo sin configurar cuando crees una transmisión nueva.

labels

map<string, string>

Etiquetas asociadas a esta solicitud de escritura.

WriteResponse

La respuesta para Firestore.Write.

Campos
stream_id

string

El ID del flujo. Solo se establece en el primer mensaje, cuando se crea una transmisión nueva.

stream_token

bytes

Un token que representa la posición de esta respuesta en la transmisión. El cliente puede usarlo para reanudar la transmisión en este punto.

Este campo siempre está establecido.

write_results[]

WriteResult

Es el resultado de aplicar las operaciones de escritura.

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

commit_time

Timestamp

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

WriteResult

Es el resultado de aplicar una escritura.

Campos
update_time

Timestamp

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

Si la escritura no modificó el documento, este será el valor de update_time anterior.

transform_results[]

Value

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