Method: projects.databases.documents.runQuery

Executa uma consulta.

Solicitação HTTP

POST https://firestore.googleapis.com/v1beta1/{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 para a consulta. Se definido, outras estatísticas de consulta serão retornadas. 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 é a 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 em que a consulta será executada.

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 vai ser retornado como a primeira resposta no fluxo.

readTime

string (Timestamp format)

Lê os documentos como estavam na época.

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

Um carimbo de data/hora no formato UTC "Zulu" RFC3339, 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 desta solicitação. Só pode ser definido na primeira resposta e apenas se RunQueryRequest.new_transaction tiver sido definido na solicitação. Se definido, nenhum outro campo será definido na 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. Isso pode aumentar de forma monotônica. Nesse caso, é garantido que os documentos anteriores no fluxo de resultado não mudaram entre o readTime e o atual.

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

Um carimbo de data/hora no formato UTC "Zulu" RFC3339, 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)

Métricas de explicação de 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 estiver presente, ele indica que o fluxo de resposta da consulta atual foi concluído. Pode ser definido com ou sem um document presente, 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.