Method: projects.databases.documents.runQuery

Ejecuta una consulta.

Solicitud HTTP

POST https://firestore.googleapis.com/v1/{parent=projects/*/databases/*/documents}:runQuery

La URL usa la sintaxis de la transcodificación gRPC.

Parámetros de ruta de acceso

Parámetros
parent

string

Obligatorio. El nombre del recurso superior. Tiene el formato projects/{projectId}/databases/{databaseId}/documents o projects/{projectId}/databases/{databaseId}/documents/{document_path}. Por ejemplo, projects/my-project/databases/my-database/documents o projects/my-project/databases/my-database/documents/chatrooms/my-chatroom.

Cuerpo de la solicitud

El cuerpo de la solicitud contiene datos con la siguiente estructura:

Representación JSON
{
  "explainOptions": {
    object (ExplainOptions)
  },

  // Union field query_type can be only one of the following:
  "structuredQuery": {
    object (StructuredQuery)
  }
  // End of list of possible types for union field query_type.

  // Union field consistency_selector can be only one of the following:
  "transaction": string,
  "newTransaction": {
    object (TransactionOptions)
  },
  "readTime": string
  // End of list of possible types for union field consistency_selector.
}
Campos
explainOptions

object (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:
structuredQuery

object (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

string (bytes format)

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.

String codificada en base64.

newTransaction

object (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.

readTime

string (Timestamp format)

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.

Una marca de tiempo en formato RFC3339 UTC “Zulú”, con una resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: "2014-10-02T15:01:23Z" y "2014-10-02T15:01:23.045123456Z".

Cuerpo de la respuesta

La respuesta para Firestore.RunQuery.

Si se ejecuta correctamente, el cuerpo de la respuesta contiene datos con la siguiente estructura:

Representación JSON
{
  "transaction": string,
  "document": {
    object (Document)
  },
  "readTime": string,
  "skippedResults": integer,
  "explainMetrics": {
    object (ExplainMetrics)
  },

  // Union field continuation_selector can be only one of the following:
  "done": boolean
  // End of list of possible types for union field continuation_selector.
}
Campos
transaction

string (bytes format)

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.

String codificada en base64.

document

object (Document)

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

readTime

string (Timestamp format)

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 readTime y este.

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

Una marca de tiempo en formato RFC3339 UTC “Zulú”, con una resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: "2014-10-02T15:01:23Z" y "2014-10-02T15:01:23.045123456Z".

skippedResults

integer

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

explainMetrics

object (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

boolean

Si está presente, Firestore finalizó la solicitud por completo y no se mostrarán más 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.