Package google.firestore.v1

Í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 que muestra este método se devuelvan en el mismo orden en que se solicitaron.

Alcances de autorización

Se necesita uno de los siguientes permisos 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 desordenada. El método no permite más de una operación de escritura por documento. Cada escritura se realiza de manera correcta 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.

Alcances de autorización

Se necesita uno de los siguientes permisos 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.

Alcances de autorización

Se necesita uno de los siguientes permisos 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.

Alcances de autorización

Se necesita uno de los siguientes permisos 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.

Alcances de autorización

Se necesita uno de los siguientes permisos 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.

Alcances de autorización

Se necesita uno de los siguientes permisos 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.

Alcances de autorización

Se necesita uno de los siguientes permisos 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 ID de colección incluidos en un documento.

Alcances de autorización

Se necesita uno de los siguientes permisos 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.

Alcances de autorización

Se necesita uno de los siguientes permisos 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)

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

Alcances de autorización

Se necesita uno de los siguientes permisos 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 mediante la devolución de 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 puede usar RunQuery como puntos de inicio y finalización para los resultados de la consulta.

Alcances de autorización

Se necesita uno de los siguientes permisos 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.

Alcances de autorización

Se necesita uno de los siguientes permisos 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 );
Alcances de autorización

Se necesita uno de los siguientes permisos 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.

Ejecutar consulta

rpc RunQuery(RunQueryRequest) returns (RunQueryResponse)

Ejecuta una consulta.

Alcances de autorización

Se necesita uno de los siguientes permisos 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.

Alcances de autorización

Se necesita uno de los siguientes permisos 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.

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

Alcances de autorización

Se necesita uno de los siguientes permisos 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 (Resultado de agregación)

El resultado de un solo bucket 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

Es un valor de array.

Campos
values[]

Value

Valores del array.

BatchGetDocumentsRequest

La solicitud para Firestore.BatchGetDocuments.

Campos
database

string

Obligatorio. 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 determinado. Se omitirán los nombres duplicados.

mask

DocumentMask

Los campos que se mostrarán. Si no está configurado, 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 de esta transacción. Si no está configurado, se establece de forma predeterminada en la coherencia sólida. consistency_selector puede ser solo uno de los siguientes:
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 un momento determinado.

Debe ser una marca de tiempo con precisión de microsegundos dentro de la última hora o, si se habilitó 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

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

read_time

Timestamp

Indica 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 en la transmisión de resultados no hayan cambiado entre su read_time y esta.

Campo de unión result. Un solo resultado. Puede estar vacío si el servidor solo muestra una transacción. result puede ser solo uno de los siguientes:
found

Document

Un documento que se solicitó.

missing

string

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

BatchWriteRequest

La solicitud para Firestore.BatchWrite.

Campos
database

string

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

writes[]

Write

Son las escrituras que se deben aplicar.

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

labels

map<string, string>

Etiquetas asociadas con esta escritura por lotes.

BatchWriteResponse

La respuesta de Firestore.BatchWrite.

Campos
write_results[]

WriteResult

El resultado de aplicar las escrituras.

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

status[]

Status

El estado de la aplicación de las escrituras.

Este estado de escritura i-ésima es la escritura i-ésima de la solicitud.

BeginTransactionRequest

La solicitud para Firestore.BeginTransaction.

Campos
database

string

Obligatorio. 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 o menos bits. padding define la cantidad de bits del último byte que se ignorará como “padding”. Los valores de estos “padding” bits no están especificados y deben ignorarse.

Para recuperar el primer bit, el bit 0, calcula: (bitmap[0] & 0x01) != 0. Para recuperar el segundo bit, el 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 (la cantidad 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.

Filtro Bloom

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

El filtro Bloom genera un hash en 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 mediante la codificación del 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 luego módulo al número de bits en el filtro de floración para obtener los bits del filtro de flor que se probarán para la entrada dada.

Campos
bits

BitSequence

Datos del filtro Bloom.

hash_count

int32

La cantidad de hashes que usa el algoritmo.

CommitRequest

La solicitud para Firestore.Commit.

Campos
database

string

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

writes[]

Write

Son las escrituras que se deben aplicar.

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

transaction

bytes

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

CommitResponse

La respuesta para Firestore.Commit.

Campos
write_results[]

WriteResult

El resultado de aplicar las escrituras.

Este enésimo resultado de escritura corresponde a la escritura i-ésima de 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.

CreateDocumentRequest

La solicitud para Firestore.CreateDocument.

Campos
parent

string

Obligatorio. Es 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, que se mostrará en la lista. Por ejemplo: chatrooms.

document_id

string

El ID de documento asignado por el cliente para 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 mostrarán. Si no está configurado, 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

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, por cláusula de una consulta.

Puede contener menos valores de los especificados en la cláusula order by.

before

bool

Si la posición es justo antes o 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 de 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 se configura y el documento de destino no lo cumple.

Documento

Un documento de Firestore

No debe exceder los 1 MiB a 4 bytes.

Campos
name

string

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

fields

map<string, Value>

create_time

Timestamp

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

Este valor aumenta de forma monotónica cuando se borra 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

Solo salida. Indica la hora en la que se modificó el documento por última vez.

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

DocumentChange

Cambió una Document.

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

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

Campos
document

Document

El nuevo estado de Document.

Si estableces mask, contendrá solo los campos que se actualizaron o agregaron.

target_ids[]

int32

Un conjunto de ID de destino de destinos que coinciden con este documento.

removed_target_ids[]

int32

Es un conjunto de ID de destino para destinos que ya no coinciden con este documento.

Borrado de documentos

Se borró un Document.

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

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

Campos
document

string

El nombre del recurso del Document que se borró.

removed_target_ids[]

int32

Un conjunto de ID de destino para los destinos que anteriormente coincidían con esta entidad.

read_time

Timestamp

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

Mayor o igual que el commit_time de la eliminación.

DocumentMask

Un conjunto de rutas de campo en un documento. Se usa para restringir una operación de obtención o actualización en un documento a un subconjunto de sus campos. Esto es diferente de las máscaras de campo estándar, ya que siempre se define en 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. Consulta Document.fields para obtener una referencia de sintaxis de ruta de campo.

Eliminar documento

Se quitó una Document de la vista de los destinos.

Se envía si el documento ya no es relevante para un destino 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.

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

Campos
document

string

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

removed_target_ids[]

int32

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

read_time

Timestamp

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

Mayor o igual que la 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.

Transformación de campo

Es una transformación de un campo del documento.

Campos
field_path

string

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

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

ServerValue

Establece el campo en el valor del servidor determinado.

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 establecerá el campo en el valor dado. Si cualquiera de los valores dados o el valor actual del campo se duplica, ambos valores se interpretarán como dobles. La aritmética doble y la representación de valores dobles siguen la semántica de IEEE 754. Si hay un desbordamiento de números enteros positivos o negativos, el campo se resuelve al número entero positivo/negativo de magnitud más grande.

maximum

Value

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

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 establecerá el campo en el valor dado. Si se aplica una operación máxima en la que el campo y el valor de entrada son de varios tipos (es decir, uno es un número entero y el otro es un doble), el campo adopta 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 cero. El máximo entre 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 especificado.

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 establecerá el campo en el valor de entrada. Si se aplica una operación mínima en la que el campo y el valor de entrada son tipos mixtos (es decir, uno es un número entero y el otro es un doble), el campo adopta 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 cero. El mínimo entre cero y un valor de entrada y 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 dados en orden si aún no están presentes en el valor del campo actual. Si el campo no es un array o si el campo aún no existe, primero se configura como un 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 es igual a NaN y Nulo es igual a Nulo. Si la entrada contiene múltiples valores equivalentes, solo se considerará el primero.

El transform_result correspondiente será el valor nulo.

remove_all_from_array

ArrayValue

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

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

El transform_result correspondiente será el valor nulo.

ServerValue

Un valor que calcula el servidor.

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

Estadísticas de ejecución

Estadísticas de ejecución de 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. Puede incluir lo siguiente: { "indexes_inputs_s lujoso": "1000", "documents_spositive": "20", "billing_details" : { "documents_billable": "20", "index_inputs_billable": "1000", "min_query_cost": "0" }.

Filtro de existencia

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 objetivo.

El cliente puede usar el filtro de flor de unchanged_names para ayudar con esta determinación probando TODOS los nombres de 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 flor 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 flor 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 este campo ausente recurriendo a la lógica usada antes de que existiera el campo. es decir, volver a agregar el destino sin un token de reanudación para averiguar qué documentos de la caché del cliente no están sincronizados.

ExplainMetrics

Explicar 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 ExplainOptions.analyze se establece como verdadero.

ExplainOptions

Explicar las opciones de la consulta.

Campos
analyze

bool

Opcional. Indica si se debe ejecutar esta consulta.

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

Cuando es verdadero, la consulta se planifica y ejecuta, y se muestran los resultados completos junto con las métricas de la etapa de planificación y ejecución.

GetDocumentRequest

La solicitud para Firestore.GetDocument.

Campos
name

string

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

mask

DocumentMask

Los campos que se mostrarán. Si no está configurado, 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 de esta transacción. Si no está configurado, se establece de forma predeterminada en la coherencia sólida. consistency_selector puede ser solo uno de los siguientes:
transaction

bytes

Lee el documento de 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 se habilitó 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.

Solicitud de ListCollectionIds

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 en la coherencia sólida. consistency_selector puede ser solo uno de los siguientes:
read_time

Timestamp

Lee los documentos tal como estaban en un momento determinado.

Debe ser una marca de tiempo con precisión de microsegundos dentro de la última hora o, si se habilitó 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

La respuesta de Firestore.ListCollectionIds.

Campos
collection_ids[]

string

Los ID de colección.

next_page_token

string

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

ListDocumentsRequest

La solicitud para Firestore.ListDocuments.

Campos
parent

string

Obligatorio. El nombre del recurso superior. Tiene 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, que se mostrará en 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.

Es posible que Firestore muestre menos que este valor.

page_token

string

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

Proporciona esto para recuperar la página siguiente. Durante 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 cadena. Cuando está ausente, los documentos se ordenan según __name__ ASC.

mask

DocumentMask

Opcional. Los campos que se mostrarán. Si no está configurado, 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 debería mostrar documentos faltantes.

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

Las solicitudes con show_missing no pueden especificar where ni order_by.

Campo de unión consistency_selector. El modo de coherencia de esta transacción. Si no está configurado, se establece de forma predeterminada en la coherencia sólida. consistency_selector puede ser solo uno de los siguientes:
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 se habilitó 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. 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 destino cambian.

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

Target

Un destino para agregar a esta transmisión.

remove_target

int32

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

ListenResponse

La respuesta para Firestore.Listen.

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

TargetChange

Cambiaron los objetivos.

document_change

DocumentChange

Cambió una Document.

document_delete

DocumentDelete

Se borró un Document.

document_remove

DocumentRemove

Se quitó una 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 mostró antes para el destino determinado.

Se muestra cuando es posible que los documentos se hayan quitado del destino determinado, pero se desconocen los documentos exactos.

Valor del mapa

Es un valor de mapa.

Campos
fields

map<string, Value>

Los campos del mapa.

Las claves de asignación representan nombres de campos. Los nombres de campos que coincidan con la expresión regular __.*__ están reservados. Los nombres de campos reservados están prohibidos, excepto en ciertos contextos documentados. Las claves de mapa, representadas como UTF-8, no deben exceder los 1500 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, se puede establecer en uno menos que la cantidad de consultas paralelas que se ejecutarán o, en la ejecución de un trabajo de canalización de datos, en uno menos que la cantidad de trabajadores o instancias de procesamiento disponibles.

page_token

string

El valor next_page_token que se muestra en una llamada anterior a PartitionQuery que se puede usar para obtener un conjunto adicional de resultados. No hay garantías de orden entre conjuntos de resultados. Por lo tanto, para usar varios conjuntos de resultados, deberás combinarlos.

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

  • 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 suministrada a PartitionQuery, se deben combinar los conjuntos de resultados: 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 un next_page_token si existen más resultados. Una segunda llamada a PartitionQuery mostrará hasta 2 particiones para completar el total de 10 especificadas en partition_count.

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

StructuredQuery

Una consulta estructurada. La consulta debe especificar la colección con todos los elementos subordinados y estar ordenada por nombre de forma ascendente. No se admiten otros filtros, ordenamientos por, límites, desplazamientos ni cursores de inicio/finalización.

Campo de unión consistency_selector. El modo de coherencia para esta solicitud. Si no está configurado, se establece de forma predeterminada en la coherencia sólida. consistency_selector puede ser solo uno de los siguientes:
read_time

Timestamp

Lee los documentos tal como estaban en un momento determinado.

Debe ser una marca de tiempo con precisión de microsegundos dentro de la última hora o, si se habilitó 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

Particionar los resultados. 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 suministrada a esta solicitud de 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 cursores de partición A y B, ejecutar las siguientes tres consultas mostrará todo el conjunto de resultados 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 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 especificado por partition_count en la solicitud de PartitionQuery. Si se deja en blanco, significa que no hay más resultados.

Resumen del plan

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

Campos
indexes_used[]

Struct

Los índices seleccionados para la consulta. Por ejemplo: [ {"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. Es 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

Si se establece, el documento de destino debe existir y haber sido actualizado por última vez en ese momento. La marca de tiempo debe alinearse con microsegundos.

RollbackRequest

La solicitud para Firestore.Rollback.

Campos
database

string

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

transaction

bytes

Obligatorio. La transacción que se revierte.

RunAggregationQueryRequest

La solicitud para Firestore.RunAggregationQuery.

Campos
parent

string

Obligatorio. El nombre del recurso superior. Tiene 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. Explicar las opciones de la consulta. Si se establece, se mostrarán estadísticas adicionales de las consultas. De lo contrario, solo se devolverán los resultados de la consulta.

Campo de unión query_type. La consulta que se ejecutará. query_type puede ser solo uno de los siguientes:
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. consistency_selector puede ser solo uno de los siguientes:
transaction

bytes

Ejecutar 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 nueva transacción como parte de la consulta y cambia la configuración predeterminada a 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 especificada.

Debe ser una marca de tiempo con precisión de microsegundos dentro de la última hora o, si se habilitó 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 el progreso parcial.

transaction

bytes

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

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

read_time

Timestamp

El momento en que se calculó el resultado agregado. Esto siempre aumenta monótonamente; En este caso, se garantiza que el AggregationResult anterior en la transmisión 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 a 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 de la transmisión.

RunQueryRequest

La solicitud para Firestore.RunQuery.

Campos
parent

string

Obligatorio. El nombre del recurso superior. Tiene 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. Explicar las opciones de la consulta. Si se establece, se mostrarán estadísticas adicionales de las consultas. De lo contrario, solo se devolverán los resultados de la consulta.

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

StructuredQuery

Una consulta estructurada.

Campo de unión consistency_selector. El modo de coherencia de esta transacción. Si no está configurado, se establece de forma predeterminada en la coherencia sólida. consistency_selector puede ser solo uno de los siguientes:
transaction

bytes

Ejecutar la consulta 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 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 un momento determinado.

Debe ser una marca de tiempo con precisión de microsegundos dentro de la última hora o, si se habilitó 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

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

document

Document

Es un resultado de la consulta, no se establece cuando se informa el progreso parcial.

read_time

Timestamp

Indica 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 hayan cambiado 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 a la que se ejecutó la consulta.

skipped_results

int32

La cantidad de resultados que se omitieron debido al 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 de la transmisión.

Campo de unión continuation_selector. El modo de continuación de la consulta. Si está presente, indica que finalizó el flujo 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 finalizó la solicitud por completo y no se mostrarán más documentos.

StructuredAggregationQuery

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

Campos
aggregations[]

Aggregation

Opcional. 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 va a 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 solo resultado.

Campos
alias

string

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

Si no se proporciona, Firestore elegirá un nombre predeterminado según 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 lo siguiente:

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á (obligatorio). operator puede ser solo uno de los siguientes:
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. La matemática de Infinity cumple con 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 realizará 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 en la cantidad de documentos que se analizarán, lo que limita la latencia y el costo.

Si no se especifica, 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.

Suma

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. La matemática de Infinity cumple con 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 se desborda. De lo contrario, el resultado se muestra como un doble. Ten en cuenta que, aunque todos los valores agregados sean números enteros, el resultado se muestra como un doble si no cabe dentro de un número entero firmado de 64 bits. Cuando esto ocurre, el valor devuelto perderá precisión.

  • Cuando se produce un subdesbordamiento, la agregación de punto flotante no es determinista. Esto significa que ejecutar la misma consulta varias veces 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 en el que se realizará la agregación.

StructuredQuery

Una consulta de Firestore.

Las etapas de consulta se ejecutan en el siguiente orden: 1. desde 2. donde 3. selecciona 4. order_by + start_at + end_at 5. desplazamiento 6. límite

Campos
select

Projection

Subconjunto opcional de los campos que se mostrarán.

Esto actúa como un DocumentMask sobre los documentos que se muestran en una consulta. Cuando no se establece, supone que el llamador desea que se devuelvan todos los campos.

from[]

CollectionSelector

Las colecciones que se consultarán.

where

Filter

El filtro que se aplicará.

order_by[]

Order

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

Firestore permite que los llamadores proporcionen un orden completo o parcial, o bien no proporcionar ningún orden. En todos los casos, Firestore garantiza un orden estable mediante las siguientes reglas:

  • order_by es obligatorio para hacer referencia a todos los campos que se usan 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 orden lexicográfico del nombre del campo.
  • Si no se especifica un pedido en __name__, se agrega de forma predeterminada.

A los campos se les agrega la misma dirección de orden que la del último orden especificado, o “ASCENDING”. si no se especificó ningún orden. Por ejemplo:

  • ORDER BY a pasa a ser ORDER BY a ASC, __name__ ASC.
  • ORDER BY a DESC pasa a ser ORDER BY a DESC, __name__ DESC.
  • WHERE a > 1 pasa a ser WHERE a > 1 ORDER BY a ASC, __name__ ASC.
  • WHERE __name__ > ... AND a > 1 pasa a ser 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 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 del 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 justo después de a = 1 AND b > 10.

A diferencia de OFFSET, que requiere analizar los primeros N resultados para omitirlos, 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, sino que escaneará hacia adelante 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

Un posible prefijo de una posición en el conjunto de resultados para finalizar la consulta.

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

Requisitos:

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

int32

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

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

Requisitos:

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

Int32Value

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

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

Requisitos:

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

FindNearest

Opcional. Una posible búsqueda de vecinos más cercanos.

Se aplica después de todos los demás filtros y orden.

Encuentra las incorporaciones vectoriales más cercanas al vector de consulta dado.

Selector de colección

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

Campos
collection_id

string

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

all_descendants

bool

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

CompositeFilter

Es un filtro que combina varios otros filtros usando 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.

Operador

Un operador de filtro compuesto.

Enums
OPERATOR_UNSPECIFIED Sin especificar. 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.

Enums
DIRECTION_UNSPECIFIED Sin especificar.
ASCENDING Ascendente.
DESCENDING Descendente.

Filtro Campo

Un filtro en un campo específico.

Campos
field

FieldReference

El campo que se usará para filtrar.

op

Operator

Operador por el que se debe filtrar.

value

Value

Valor con el que se va a comparar.

Operador

Un operador de filtro de campo.

Enums
OPERATOR_UNSPECIFIED Sin especificar. No se debe usar este valor.
LESS_THAN

El field especificado es menor que el value especificado.

Requisitos:

  • Esas field aparecen primero en order_by.
LESS_THAN_OR_EQUAL

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

Requisitos:

  • Esas field aparecen primero en order_by.
GREATER_THAN

El field especificado es mayor que el value especificado.

Requisitos:

  • Esas field aparecen primero en order_by.
GREATER_THAN_OR_EQUAL

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

Requisitos:

  • Esas field aparecen primero en order_by.
EQUAL El field especificado es igual al value especificado.
NOT_EQUAL

El field proporcionado no es igual al value especificado.

Requisitos:

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

El field proporcionado es igual a al menos un valor del array especificado.

Requisitos:

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

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

Requisitos:

  • Ese value es un ArrayValue no vacío, sujeto a los 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 se encuentra en el array proporcionado.

Requisitos:

  • Ese value es un ArrayValue no vacío con un máximo de 10 valores.
  • No hay otro OR, IN, ARRAY_CONTAINS_ANY, NOT_IN, NOT_EQUAL, IS_NOT_NULL ni 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

Es una referencia a un campo en un documento.

Requisitos:

  • DEBE ser una cadena de segmentos delimitada por puntos (.), en la que cada segmento cumpla con las limitaciones de document field name.

Filtro

Un filtro.

Campos
Campo de unión 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 el campo de un documento.

unary_filter

UnaryFilter

Un filtro que toma exactamente un argumento.

Buscar más cercano

Configuración de búsqueda de vecinos más cercanos.

Campos
vector_field

FieldReference

Obligatorio. Es un campo de vector indexado para buscar. Solo se pueden mostrar documentos que contienen vectores cuya dimensionalidad coincide con el vector_consulta.

query_vector

Value

Obligatorio. El vector de consulta que estamos buscando. Debe ser un vector de no más de 2,048 dimensiones.

distance_measure

DistanceMeasure

Obligatorio. La medida de distancia que se usará, obligatoria.

limit

Int32Value

Obligatorio. La cantidad de vecinos más cercanos que se mostrarán. Debe ser un número entero positivo de no más de 1,000.

Medición de distancia

La medida de distancia que se usará para comparar vectores.

Enums
DISTANCE_MEASURE_UNSPECIFIED No se debe establecer.
EUCLIDEAN Mide la distancia EUCLIDEAN entre los vectores. Consulta Euclidean para obtener más información
COSINE Compara vectores según el ángulo entre ellos, lo que te permite medir una similitud que no se basa en la magnitud de los vectores. Recomendamos usar DOT_PRODUCT con vectores normalizados por unidad en lugar de la distancia COSINE, que es matemáticamente equivalente con un mejor rendimiento. Consulta Similitud de coseno para obtener más información.
DOT_PRODUCT Similar al coseno, pero se ve afectado por la magnitud de los vectores. Consulta Dot Product para obtener más información.

Pedido

Un pedido en un campo.

Campos
field

FieldReference

El campo según el cual se debe realizar el pedido.

direction

Direction

Indica las instrucciones para 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 mostrarán.

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

Filtro unario

Un filtro con un solo operando.

Campos
op

Operator

El operador unario que se aplica.

Campo de unión operand_type. Es el argumento del filtro. operand_type puede ser solo uno de los siguientes:
field

FieldReference

El campo al que se aplica el operador.

Operador

Un operador unario.

Enums
OPERATOR_UNSPECIFIED Sin especificar. No se debe usar este valor.
IS_NAN El field proporcionado es igual a NaN.
IS_NULL El field proporcionado es igual a NULL.
IS_NOT_NAN

El field especificado no es igual a NaN.

Requisitos:

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

El field especificado no es igual a NULL.

Requisitos:

  • Una sola NOT_EQUAL, NOT_IN, IS_NOT_NULL o IS_NOT_NAN.
  • Ese field está primero en order_by.

Segmentar

Es una especificación de un conjunto de documentos para escuchar.

Campos
target_id

int32

El ID de destino que identifica el objetivo en la transmisión. Debe ser un número positivo y un número 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 que se agrega un destino con target_id=0, el servidor enviará inmediatamente 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 target_id no es cero, no debe haber ningún objetivo activo en esta transmisión con el mismo ID.

once

bool

Si el objetivo debe quitarse una vez que esté actualizado y sea coherente.

expected_count

Int32Value

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

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

Campo de unión target_type. Es el tipo de objetivo que se escuchará. target_type puede ser solo uno de los siguientes:
query

QueryTarget

Un objetivo especificado por una consulta.

documents

DocumentsTarget

Es un objetivo 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, todos los documentos coincidentes se muestran antes de los cambios posteriores. 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 objetivo 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 determinado. Se omitirán los nombres duplicados.

Destino de la consulta

Un objetivo especificado por una consulta.

Campos
parent

string

El nombre del recurso superior. Tiene 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á. query_type puede ser solo uno de los siguientes:
structured_query

StructuredQuery

Una consulta estructurada.

Cambio de destino

Cambiaron los objetivos que se están observando.

Campos
target_change_type

TargetChangeType

El tipo de cambio que se produjo.

target_ids[]

int32

Los ID de destino de las orientaciones que cambiaron.

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 generó este cambio, si corresponde.

resume_token

bytes

Un token que se puede usar para reanudar la transmisión del target_ids determinado 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 la target_ids determinada (se omite cuando los target_ids no están en una instantánea coherente)

Se garantiza que la transmisión envíe un read_time con target_ids vacío cada vez que toda la transmisión alcanza una nueva instantánea coherente. Se garantiza que los mensajes ADD, CURRENT y RESET generarán (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 aumentará monótonamente.

Tipo de cambio objetivo

El tipo de cambio.

Enums
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 a la transmisión.

Esto se enviará después o con un read_time que sea mayor o igual que el momento en que se agregaron los destinos.

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

RESET

Se restablecieron los objetivos y se mostrará un nuevo estado inicial en los cambios posteriores.

Una vez que se complete el estado inicial, se mostrará CURRENT, incluso si el objetivo se indicó anteriormente como CURRENT.

TransactionOptions

Opciones para crear una nueva transacción.

Campos
Campo de unión mode. Es 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 para operaciones de lectura y escritura.

Sólo lectura

Son las opciones de una transacción que solo se pueden usar para leer documentos.

Campos
Campo de unión consistency_selector. El modo de coherencia de esta transacción. Si no está configurado, se establece de forma predeterminada en la coherencia sólida. consistency_selector puede ser solo uno de los siguientes:
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 se habilitó 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.

Lectura y escritura

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

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

Campos
retry_transaction

bytes

Una 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, estos 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 mostrarán. Si no está configurado, 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 se configura y el documento de destino no lo cumple.

Valor

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

Campos
Campo de unión value_type. Se debe establecer un valor. value_type puede ser solo uno de los siguientes:
null_value

NullValue

Un valor nulo.

boolean_value

bool

Un valor booleano

integer_value

int64

Es un valor entero.

double_value

double

Un valor doble.

timestamp_value

Timestamp

Un valor de marca de tiempo.

Precisa solo en microsegundos. Cuando se almacena, cualquier precisión adicional se redondea hacia abajo.

string_value

string

Es un valor de cadena.

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

bytes_value

bytes

Es un valor de bytes.

No debe superar 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 de la superficie de la Tierra.

array_value

ArrayValue

Es un valor de array.

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

map_value

MapValue

Es un valor de mapa.

Escribir

Escritura en un documento

Campos
update_mask

DocumentMask

Los campos que se actualizarán en esta escritura.

Este campo se puede configurar solo cuando la operación es update. Si no se configura la máscara para un 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, estos 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 de 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 se puede configurar solo 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 se configura y el documento de destino no la cumple.

Campo de unión operation. La operación que se ejecutará. operation puede ser solo uno de los siguientes:
update

Document

Un documento para escribir.

delete

string

El nombre de un documento que se 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 desde un token.

Cuando se crea una transmisión nueva, el servidor responde con una respuesta que contiene solo un ID y un token, para usarla en la próxima solicitud.

Cuando se reanuda una transmisión, el servidor primero transmite las respuestas posteriores al token determinado y, luego, una respuesta que contiene solo un token actualizado para usarlas en la próxima solicitud.

Campos
database

string

Obligatorio. El nombre de la base de datos. En el formato projects/{project_id}/databases/{database_id}. Este paso 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. Si se deja vacío, se creará un flujo de escritura nuevo.

writes[]

Write

Son las escrituras que se deben aplicar.

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 configurar 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 ya no se usen los anteriores.

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

No configures este campo cuando crees una transmisión nueva. Para reanudar una transmisión en un punto específico, configura este campo y el campo stream_id.

No configures este campo cuando crees una transmisión nueva.

labels

map<string, string>

Son las etiquetas asociadas con esta solicitud de escritura.

Respuesta de escritura

La respuesta para Firestore.Write.

Campos
stream_id

string

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

stream_token

bytes

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

Este campo siempre está configurado.

write_results[]

WriteResult

El resultado de aplicar las escrituras.

Este enésimo resultado de escritura corresponde a la escritura i-ésima de 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 escritura.

WriteResult

El resultado de aplicar una operación de 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 operación de escritura no cambió realmente el documento, esta será la hora de actualización anterior.

transform_results[]

Value

Los resultados de la aplicación de cada DocumentTransform.FieldTransform, en el mismo orden.