Method: projects.databases.documents.runQuery

Executa uma consulta.

Solicitação HTTP

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

O URL usa a sintaxe de transcodificação gRPC.

Parâmetros de caminho

Parâmetros
parent

string

Obrigatório. O nome do recurso pai. Use o formato projects/{projectId}/databases/{databaseId}/documents ou projects/{projectId}/databases/{databaseId}/documents/{document_path}. Por exemplo: projects/my-project/databases/my-database/documents ou projects/my-project/databases/my-database/documents/chatrooms/my-chatroom

Corpo da solicitação

O corpo da solicitação contém dados com a seguinte estrutura:

Representação 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. Explique as opções da consulta. Se definido, serão retornadas estatísticas de consulta adicionais. Caso contrário, apenas os resultados da consulta serão retornados.

Campo de união query_type. A consulta a ser executada. query_type pode ser apenas de um dos tipos a seguir:
structuredQuery

object (StructuredQuery)

Uma consulta estruturada.

Campo de união consistency_selector. O modo de consistência para esta transação. Se não for definido, o padrão é consistência forte. consistency_selector pode ser apenas de um dos tipos a seguir:
transaction

string (bytes format)

Execute a consulta em uma transação já ativa.

O valor aqui é o ID da transação opaco para executar a consulta.

Uma string codificada em base64.

newTransaction

object (TransactionOptions)

Inicia uma nova transação e lê os documentos. O padrão é uma transação somente leitura. O novo ID da transação será retornado como a primeira resposta no fluxo.

readTime

string (Timestamp format)

Lê os documentos como estavam no momento especificado.

Precisa ser um carimbo de data/hora com precisão de microssegundos na última hora ou, se a recuperação pontual estiver ativada, também poderá ser um carimbo de data/hora de um minuto inteiro nos últimos sete dias.

Um carimbo de data/hora no formato RFC3339 UTC "Zulu", com resolução de nanossegundos e até nove dígitos fracionários. Exemplos: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

Corpo da resposta

A resposta para Firestore.RunQuery.

Se bem-sucedido, o corpo da resposta incluirá dados com a estrutura a seguir:

Representação 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)

A transação que foi iniciada como parte da solicitação. Só pode ser definido na primeira resposta e somente se RunQueryRequest.new_transaction tiver sido definido na solicitação. Se definido, nenhum outro campo será definido nesta resposta.

Uma string codificada em base64.

document

object (Document)

Um resultado de consulta, não definido ao relatar progresso parcial.

readTime

string (Timestamp format)

A hora em que o documento foi lido. Ela pode estar aumentando monotonicamente. Nesse caso, os documentos anteriores no fluxo de resultados têm a garantia de não serem alterados entre o readTime e este.

Se a consulta não retornar resultados, uma resposta com readTime e nenhum document será enviada, o que representa o horário em que a consulta foi executada.

Um carimbo de data/hora no formato RFC3339 UTC "Zulu", com resolução de nanossegundos e até nove dígitos fracionários. Exemplos: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

skippedResults

integer

O número de resultados que foram ignorados devido a um deslocamento entre a última resposta e a atual.

explainMetrics

object (ExplainMetrics)

Explicar as métricas da consulta. Ele só está presente quando o RunQueryRequest.explain_options é fornecido e é enviado apenas uma vez com a última resposta no stream.

Campo de união continuation_selector. O modo de continuação da consulta. Se presente, indica que o stream de resposta da consulta atual foi concluído. Isso pode ser definido com ou sem um document, mas, quando definido, nenhum outro resultado é retornado. continuation_selector pode ser apenas de um dos tipos a seguir:
done

boolean

Se presente, o Firestore concluiu completamente a solicitação e nenhum outro documento será retornado.

Escopos de autorização

Requer um dos seguintes escopos de OAuth:

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

Para saber mais, consulte a Visão geral da autenticação.