Package google.firestore.v1beta1

Índice

Firestore

O serviço do Cloud Firestore.

O Cloud Firestore é um banco de dados de documentos NoSQL rápido, totalmente gerenciado, sem servidor e nativo da nuvem que simplifica o armazenamento, a sincronização e a consulta de dados para seus aplicativos em dispositivos móveis, na Web e de IoT em escala global. As bibliotecas de cliente dele oferecem sincronização em tempo real e suporte off-line. Além disso, os recursos de segurança e de integração com o Firebase e o Google Cloud Platform aceleram a criação de aplicativos verdadeiramente sem servidor.

BatchGetDocuments

rpc BatchGetDocuments(BatchGetDocumentsRequest) returns (BatchGetDocumentsResponse)

Recebe vários documentos.

Não há garantia de que os documentos retornados por esse método sejam retornados na mesma ordem em que foram solicitados.

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.

BatchWrite

rpc BatchWrite(BatchWriteRequest) returns (BatchWriteResponse)

Aplica um lote de operações de gravação.

O método BatchWrite não aplica as operações de gravação atomicamente e pode aplicá-las fora de ordem. O método não permite mais de uma gravação por documento. Cada gravação é bem-sucedida ou falha de forma independente. Consulte o BatchWriteResponse para ver o status de sucesso de cada gravação.

Se você precisar de um conjunto de gravações aplicado atomicamente, use Commit.

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.

BeginTransaction

rpc BeginTransaction(BeginTransactionRequest) returns (BeginTransactionResponse)

Inicia uma nova transação.

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.

Confirmar

rpc Commit(CommitRequest) returns (CommitResponse)

Confirma uma transação e, opcionalmente, atualiza os documentos.

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.

CreateDocument

rpc CreateDocument(CreateDocumentRequest) returns (Document)

Cria um novo documento.

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.

DeleteDocument

rpc DeleteDocument(DeleteDocumentRequest) returns (Empty)

Exclui um documento.

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.

GetDocument

rpc GetDocument(GetDocumentRequest) returns (Document)

Recebe um único documento.

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.

ListCollectionIds

rpc ListCollectionIds(ListCollectionIdsRequest) returns (ListCollectionIdsResponse)

Lista todos os IDs de coleção sob um documento.

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.

ListDocuments

rpc ListDocuments(ListDocumentsRequest) returns (ListDocumentsResponse)

Lista os documentos.

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.

Ouvir

rpc Listen(ListenRequest) returns (ListenResponse)

Ouve as mudanças. Este método está disponível apenas via gRPC ou WebChannel (não REST).

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.

PartitionQuery

rpc PartitionQuery(PartitionQueryRequest) returns (PartitionQueryResponse)

Particiona uma consulta retornando cursores de partição que podem ser usados para executar a consulta em paralelo. Os cursores de partição retornados são pontos de divisão que podem ser usados pelo RunQuery como ponto inicial/final para os resultados da consulta.

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.

Reverter

rpc Rollback(RollbackRequest) returns (Empty)

Reverte uma transação.

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.

RunAggregationQuery

rpc RunAggregationQuery(RunAggregationQueryRequest) returns (RunAggregationQueryResponse)

Executa uma consulta de agregação.

Em vez de produzir resultados Document como Firestore.RunQuery, essa API permite executar uma agregação para produzir uma série de AggregationResult no lado do servidor.

Exemplo de alto nível:

-- Return the number of documents in table given a filter.
SELECT COUNT(*) FROM ( SELECT * FROM k where a = true );
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.

RunQuery

rpc RunQuery(RunQueryRequest) returns (RunQueryResponse)

Executa uma consulta.

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.

UpdateDocument

rpc UpdateDocument(UpdateDocumentRequest) returns (Document)

Atualiza ou insere um documento.

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.

Gravar

rpc Write(WriteRequest) returns (WriteResponse)

Transmite lotes de atualizações e exclusões de documentos em ordem. Este método está disponível apenas via gRPC ou WebChannel (não REST).

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.

AggregationResult

O resultado de um único bucket de uma consulta de agregação do Firestore.

As chaves de aggregate_fields são as mesmas para todos os resultados em uma consulta de agregação, ao contrário das consultas de documentos, que podem ter campos diferentes para cada resultado.

Campos
aggregate_fields

map<string, Value>

O resultado das funções de agregação, por exemplo: COUNT(*) AS total_docs.

A chave é a alias atribuída à função de agregação na entrada, e o tamanho desse mapa é igual ao número de funções de agregação na consulta.

ArrayValue

Um valor de matriz.

Campos
values[]

Value

Valores na matriz.

BatchGetDocumentsRequest

A solicitação para Firestore.BatchGetDocuments.

Campos
database

string

Obrigatório. O nome do banco de dados. Use o formato: projects/{project_id}/databases/{database_id}.

documents[]

string

Os nomes dos documentos a serem recuperados. Use o formato: projects/{project_id}/databases/{database_id}/documents/{document_path}. A solicitação falhará se algum dos documentos não for um recurso filho do database especificado. Nomes duplicados serão ocultados.

mask

DocumentMask

Os campos a serem retornados. Se não definido, retorna todos os campos.

Se um documento tiver um campo ausente nessa máscara, esse campo não será retornado na resposta.

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

bytes

Lê documentos em uma transação.

new_transaction

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.

read_time

Timestamp

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.

BatchGetDocumentsResponse

A resposta transmitida para Firestore.BatchGetDocuments.

Campos
transaction

bytes

A transação que foi iniciada como parte desta solicitação. Só será definido na primeira resposta, e apenas se BatchGetDocumentsRequest.new_transaction tiver sido definido na solicitação.

read_time

Timestamp

A hora em que o documento foi lido. Isso pode estar aumentando constantemente. Nesse caso, é garantido que os documentos anteriores no fluxo de resultados não serão alterados entre o read_time e o atual.

Campo de união result. Um único resultado. Pode ficar vazio se o servidor estiver apenas retornando uma transação. result pode ser apenas de um dos tipos a seguir:
found

Document

Um documento que foi solicitado.

missing

string

Um nome de documento que foi solicitado, mas não existe. Use o formato: projects/{project_id}/databases/{database_id}/documents/{document_path}.

BatchWriteRequest

A solicitação para Firestore.BatchWrite.

Campos
database

string

Obrigatório. O nome do banco de dados. Use o formato: projects/{project_id}/databases/{database_id}.

writes[]

Write

As gravações a serem aplicadas.

O método não aplica as gravações atomicamente e não garante a ordenação. Cada gravação é bem-sucedida ou falha de forma independente. Não é possível gravar no mesmo documento mais de uma vez por solicitação.

labels

map<string, string>

Rótulos associados a essa gravação em lote.

BatchWriteResponse

A resposta de Firestore.BatchWrite.

Campos
write_results[]

WriteResult

O resultado da aplicação das gravações.

O resultado i-th write corresponde à i-th write na solicitação.

status[]

Status

O status de aplicação das gravações.

Esse status de gravação i-th corresponde à i-th gravação na solicitação.

BeginTransactionRequest

A solicitação para Firestore.BeginTransaction.

Campos
database

string

Obrigatório. O nome do banco de dados. Use o formato: projects/{project_id}/databases/{database_id}.

options

TransactionOptions

Opções da transação. O padrão é uma transação de leitura/gravação.

BeginTransactionResponse

A resposta para Firestore.BeginTransaction.

Campos
transaction

bytes

A transação que foi iniciada.

BitSequence

Uma sequência de bits, codificada em uma matriz de bytes.

Cada byte na matriz de bytes bitmap armazena 8 bits da sequência. A única exceção é o último byte, que pode armazenar até 8 bits ou menos. O padding define o número de bits do último byte a ser ignorado como "padding". Os valores desses bits de "padding" não são especificados e precisam ser ignorados.

Para recuperar o primeiro bit, o bit 0, calcule: (bitmap[0] & 0x01) != 0. Para recuperar o segundo bit, bit 1, calcule: (bitmap[0] & 0x02) != 0. Para recuperar o terceiro bit, bit 2, calcule: (bitmap[0] & 0x04) != 0. Para recuperar o quarto bit, bit 3, calcule: (bitmap[0] & 0x08) != 0. Para recuperar o bit n, calcule: (bitmap[n / 8] & (0x01 << (n % 8))) != 0.

O "tamanho" de um BitSequence (o número de bits que ele contém) é calculado por esta fórmula: (bitmap.length * 8) - padding.

Campos
bitmap

bytes

Os bytes que codificam a sequência de bits. O comprimento pode ser igual a zero.

padding

int32

O número de bits do último byte em bitmap a ser ignorado como "padding". Se o comprimento de bitmap for zero, esse valor precisará ser 0. Caso contrário, esse valor precisa estar entre 0 e 7, inclusive.

BloomFilter

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

O filtro Bloom gera hash das entradas com MD5 e trata o hash de 128 bits resultante como dois valores de hash de 64 bits distintos, interpretados como números inteiros não assinados usando a codificação de complemento de 2.

Esses dois valores de hash, chamados h1 e h2, são usados para calcular os valores de hash hash_count usando a fórmula, começando em i=0:

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

Esses valores resultantes são então obtidos módulo o número de bits no filtro Bloom para obter os bits do filtro Bloom para testar a entrada determinada.

Campos
bits

BitSequence

Os dados do filtro de flor.

hash_count

int32

O número de hashes usados pelo algoritmo.

CommitRequest

A solicitação para Firestore.Commit.

Campos
database

string

Obrigatório. O nome do banco de dados. Use o formato: projects/{project_id}/databases/{database_id}.

writes[]

Write

As gravações a serem aplicadas.

Sempre executado atomicamente e em ordem.

transaction

bytes

Se definido, aplica todas as gravações nessa transação e as confirma.

CommitResponse

A resposta para Firestore.Commit.

Campos
write_results[]

WriteResult

O resultado da aplicação das gravações.

O resultado i-th write corresponde à i-th write na solicitação.

commit_time

Timestamp

A hora em que a confirmação ocorreu. Qualquer leitura com um read_time igual ou maior vai garantir que os efeitos da confirmação sejam vistos.

CreateDocumentRequest

A solicitação para Firestore.CreateDocument.

Campos
parent

string

Obrigatório. O recurso pai. Por exemplo, projects/{project_id}/databases/{database_id}/documents ou projects/{project_id}/databases/{database_id}/documents/chatrooms/{chatroom_id}.

collection_id

string

Obrigatório. O ID da coleção, relativo a parent, a ser listado. Por exemplo, chatrooms.

document_id

string

O ID do documento atribuído pelo cliente a ser usado neste documento.

Opcional. Se não for especificado, um ID será atribuído pelo serviço.

document

Document

Obrigatório. O documento que será criado. name não pode ser definido.

mask

DocumentMask

Os campos a serem retornados. Se não definido, retorna todos os campos.

Se o documento tiver um campo ausente nessa máscara, esse campo não será retornado na resposta.

Cursor

Uma posição em um conjunto de resultados de consulta.

Campos
values[]

Value

Os valores que representam uma posição, na ordem em que aparecem e na ordem por cláusula de uma consulta.

Pode conter menos valores do que o especificado na ordem por cláusula.

before

bool

Se a posição é logo antes ou logo depois dos valores fornecidos, relativa à ordem de classificação definida pela consulta.

DeleteDocumentRequest

A solicitação para Firestore.DeleteDocument.

Campos
name

string

Obrigatório. O nome do recurso do documento a ser excluído. Use o formato: projects/{project_id}/databases/{database_id}/documents/{document_path}.

current_document

Precondition

Uma condição prévia opcional no documento. A solicitação falhará se isso for definido e não for atendido pelo documento de destino.

Documento

Um documento do Firestore.

Não pode exceder 1 MiB a 4 bytes.

Campos
name

string

O nome do recurso do documento, por exemplo, projects/{project_id}/databases/{database_id}/documents/{document_path}.

fields

map<string, Value>

create_time

Timestamp

Apenas saída. A hora em que o documento foi criado.

Esse valor aumenta monotonicamente quando um documento é excluído e recriado. Também pode ser comparado com valores de outros documentos e com o read_time de uma consulta.

update_time

Timestamp

Apenas saída. A hora em que o documento foi alterado pela última vez.

Inicialmente, esse valor é definido como create_time e aumenta monotonicamente a cada mudança no documento. Também pode ser comparado com valores de outros documentos e com o read_time de uma consulta.

DocumentChange

Um Document mudou.

Pode ser o resultado de várias writes, incluindo exclusões, que resultaram em um novo valor para a Document.

Várias mensagens DocumentChange poderão ser retornadas para a mesma alteração lógica, se vários destinos forem afetados.

Campos
document

Document

O novo estado da Document.

Se mask estiver definido, conterá apenas os campos que foram atualizados ou adicionados.

target_ids[]

int32

Um conjunto de IDs de destinos que correspondem a este documento.

removed_target_ids[]

int32

Um conjunto de IDs para destinos que não correspondem mais a esse documento.

DocumentDelete

Um Document foi excluído.

Pode ser resultado de várias writes, incluindo atualizações, em que a última excluiu a Document.

Várias mensagens DocumentDelete poderão ser retornadas para a mesma exclusão lógica, se vários destinos forem afetados.

Campos
document

string

O nome do recurso do Document que foi excluído.

removed_target_ids[]

int32

Um conjunto de IDs de destinos que corresponderam anteriormente a essa entidade.

read_time

Timestamp

O carimbo de data/hora de leitura em que a exclusão foi observada.

Maior ou igual ao commit_time da exclusão.

DocumentMask

Um conjunto de caminhos de campo em um documento. Usado para restringir uma operação de recebimento ou atualização em um documento a um subconjunto dos campos. Isso é diferente das máscaras de campo padrão, já que o escopo é sempre um Document e considera a natureza dinâmica de Value.

Campos
field_paths[]

string

Lista de caminhos de campo na máscara. Consulte Document.fields para ver uma referência de sintaxe de caminho de campo.

DocumentRemove

Um Document foi removido da visualização dos destinos.

Enviado se o documento não for mais relevante para um destino e estiver fora da visualização. Pode ser enviado no lugar de um DocumentDelete ou DocumentChange se o servidor não puder enviar o novo valor do documento.

Várias mensagens DocumentRemove poderão ser retornadas para a mesma gravação ou exclusão lógica, se vários destinos forem afetados.

Campos
document

string

O nome do recurso Document que saiu da visualização.

removed_target_ids[]

int32

Um conjunto de IDs para destinos que corresponderam anteriormente a este documento.

read_time

Timestamp

O carimbo de data/hora de leitura em que a remoção foi observada.

Maior ou igual ao commit_time da mudança/exclusão/remoção.

DocumentTransform

A transformação de um documento.

Campos
document

string

O nome do documento a ser transformado.

field_transforms[]

FieldTransform

A lista de transformações a serem aplicadas aos campos do documento, em ordem. Este campo não pode ficar vazio.

FieldTransform

Uma transformação de um campo do documento.

Campos
field_path

string

Caminho do campo. Consulte Document.fields para ver a referência de sintaxe do caminho do campo.

Campo de união transform_type. A transformação a ser aplicada no campo. transform_type pode ser apenas de um dos tipos a seguir:
set_to_server_value

ServerValue

Define o campo como o valor do servidor fornecido.

increment

Value

Adiciona o valor fornecido ao valor atual do campo.

Precisa ser um número inteiro ou um valor duplo. Se o campo não for um número inteiro ou duplo, ou se o campo ainda não existir, a transformação definirá o campo com o valor fornecido. Se um dos valores fornecidos ou o valor do campo atual for duplo, ambos os valores serão interpretados como duplos. A aritmética dupla e a representação de valores duplos seguem a semântica IEEE 754. Se houver estouro de números inteiros positivo/negativo, o campo será resolvido para o maior número inteiro positivo/negativo de magnitude.

maximum

Value

Define o campo como o máximo de seu valor atual e o valor fornecido.

Precisa ser um número inteiro ou um valor duplo. Se o campo não for um número inteiro ou duplo, ou se o campo ainda não existir, a transformação definirá o campo com o valor fornecido. Se uma operação máxima for aplicada quando o campo e o valor de entrada forem de tipos mistos (ou seja, um é um número inteiro e o outro é duplo), o campo assumirá o tipo do operando maior. Se os operandos forem equivalentes (por exemplo, 3 e 3,0), o campo não será alterado. 0, 0,0 e -0,0 são todos zero. O máximo de um valor zero armazenado e um valor de entrada zero é sempre o valor armazenado. O máximo de qualquer valor numérico x e NaN é NaN.

minimum

Value

Define o campo para o mínimo entre seu valor atual e o valor fornecido.

Precisa ser um número inteiro ou um valor duplo. Se o campo não for um número inteiro ou duplo, ou se o campo ainda não existir, a transformação definirá o campo como o valor de entrada. Se uma operação mínima for aplicada quando o campo e o valor de entrada forem de tipos mistos (ou seja, um é um número inteiro e o outro é duplo), o campo assumirá o tipo do operando menor. Se os operandos forem equivalentes (por exemplo, 3 e 3,0), o campo não será alterado. 0, 0,0 e -0,0 são todos zero. O mínimo de um valor zero armazenado e um valor de entrada zero é sempre o valor armazenado. O mínimo de qualquer valor numérico x e NaN é NaN.

append_missing_elements

ArrayValue

Anexe os elementos fornecidos em ordem se eles ainda não estiverem presentes no valor do campo atual. Se o campo não for uma matriz ou se ainda não existir, ele será definido primeiro como a matriz vazia.

Números equivalentes de tipos diferentes (por exemplo, 3L e 3,0) são considerados iguais ao verificar se um valor está ausente. NaN é igual a NaN e Nulo é igual a Nulo. Se a entrada contiver vários valores equivalentes, somente o primeiro será considerado.

O transform_result correspondente será o valor nulo.

remove_all_from_array

ArrayValue

Remova todos os elementos fornecidos da matriz no campo. Se o campo não for uma matriz ou se ainda não existir, ele será definido como a matriz vazia.

Os números equivalentes dos diferentes tipos (por exemplo, 3L e 3.0) são considerados iguais ao decidir se um elemento precisa ser removido. NaN é igual a NaN e Nulo é igual a Nulo. Isso removerá todos os valores equivalentes se houver cópias.

O transform_result correspondente será o valor nulo.

ServerValue

Um valor calculado pelo servidor.

Enums
SERVER_VALUE_UNSPECIFIED Não especificado. Esse valor não pode ser usado.
REQUEST_TIME A hora em que o servidor processou a solicitação, com precisão de milissegundos. Se usado em vários campos (documentos iguais ou diferentes) em uma transação, todos os campos terão o mesmo carimbo de data/hora do servidor.

ExecutionStats

Estatísticas de execução da consulta.

Campos
results_returned

int64

Número total de resultados retornados, incluindo documentos, projeções, resultados de agregação e chaves.

execution_duration

Duration

Tempo total para executar a consulta no back-end.

read_operations

int64

Total de operações de leitura faturáveis.

debug_stats

Struct

Depuração de estatísticas da execução da consulta. As estatísticas de depuração estão sujeitas a alterações à medida que o Firestore evolui. It could include: { "indexes_entries_scanned": "1000", "documents_scanned": "20", "billing_details" : { "documents_billable": "20", "index_entries_billable": "1000", "min_query_cost": "0" } }

ExistenceFilter

Um resumo de todos os documentos que correspondem a um determinado destino.

Campos
target_id

int32

O ID do destino ao qual esse filtro se aplica.

count

int32

O total de documentos que correspondem a target_id.

Se for diferente da contagem de documentos no cliente correspondentes, o cliente precisará determinar manualmente quais documentos não correspondem mais ao destino.

O cliente pode usar o filtro Bloom unchanged_names para ajudar nessa determinação testando TODOS os nomes de documentos no filtro. Se o nome do documento NÃO estiver no filtro, isso significa que ele não corresponde mais ao destino.

unchanged_names

BloomFilter

Um filtro de Bloom que, apesar do nome, contém as codificações de byte UTF-8 dos nomes de recursos de TODOS os documentos que correspondem a target_id, no formato projects/{project_id}/databases/{database_id}/documents/{document_path}.

Esse filtro de Bloom pode ser omitido a critério do servidor, por exemplo, se for considerado que o cliente não vai usá-lo ou se o cálculo ou transmissão for muito caro. Os clientes devem tratar corretamente a ausência desse campo recorrendo à lógica usada antes da existência do campo, ou seja, adicionar novamente o destino sem um token de retomada para descobrir quais documentos no cache do cliente estão fora de sincronia.

ExplainMetrics

Explique as métricas da consulta.

Campos
plan_summary

PlanSummary

Informações da fase de planejamento da consulta.

execution_stats

ExecutionStats

Estatísticas agregadas da execução da consulta. Presente apenas quando ExplainOptions.analyze estiver definido como verdadeiro.

ExplainOptions

Explique as opções para a consulta.

Campos
analyze

bool

Opcional. Define se esta consulta será executada.

Quando for definida como falsa (o padrão), a consulta será planejada, retornando apenas métricas dos estágios de planejamento.

Quando verdadeiro, a consulta será planejada e executada, retornando os resultados completos da consulta com as métricas dos estágios de planejamento e execução.

GetDocumentRequest

A solicitação para Firestore.GetDocument.

Campos
name

string

Obrigatório. O nome do recurso do documento a ser recebido. Use o formato: projects/{project_id}/databases/{database_id}/documents/{document_path}.

mask

DocumentMask

Os campos a serem retornados. Se não definido, retorna todos os campos.

Se o documento tiver um campo ausente nessa máscara, esse campo não será retornado na resposta.

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

bytes

Lê o documento em uma transação.

read_time

Timestamp

Lê a versão do documento no momento especificado.

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.

ListCollectionIdsRequest

A solicitação para Firestore.ListCollectionIds.

Campos
parent

string

Obrigatório. O documento pai. Use o formato: projects/{project_id}/databases/{database_id}/documents/{document_path}. Por exemplo: projects/my-project/databases/my-database/documents/chatrooms/my-chatroom

page_size

int32

O número máximo de resultados a serem retornados.

page_token

string

Um token de página. Precisa ser um valor de ListCollectionIdsResponse.

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

Timestamp

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.

ListCollectionIdsResponse

A resposta de Firestore.ListCollectionIds.

Campos
collection_ids[]

string

Os IDs de coleções.

next_page_token

string

Um token de página que pode ser usado para continuar a lista.

ListDocumentsRequest

A solicitação para Firestore.ListDocuments.

Campos
parent

string

Obrigatório. O nome do recurso pai. Use o formato: projects/{project_id}/databases/{database_id}/documents ou projects/{project_id}/databases/{database_id}/documents/{document_path}.

Por exemplo, projects/my-project/databases/my-database/documents ou projects/my-project/databases/my-database/documents/chatrooms/my-chatroom.

collection_id

string

Opcional. O ID da coleção, relativo a parent, a ser listado.

Por exemplo: chatrooms ou messages.

Isso é opcional e, quando não fornecido, o Firestore listará documentos de todas as coleções no parent fornecido.

page_size

int32

Opcional. O número máximo de documentos a serem retornados em uma única resposta.

O Firestore pode retornar menos que esse valor.

page_token

string

Opcional. Um token de página, recebido de uma resposta ListDocuments anterior.

Forneça isso para recuperar a página subsequente. Ao paginar, todos os outros parâmetros (exceto page_size) precisam corresponder aos valores definidos na solicitação que gerou o token de página.

order_by

string

Opcional. A ordem opcional dos documentos a serem retornados.

Por exemplo, priority desc, __name__ desc.

Isso espelha o ORDER BY usado nas consultas do Firestore, mas em uma representação de string. Na ausência, os documentos são ordenados com base em __name__ ASC.

mask

DocumentMask

Opcional. Os campos a serem retornados. Se não definido, retorna todos os campos.

Se um documento tiver um campo ausente nessa máscara, esse campo não será retornado na resposta.

show_missing

bool

Se a lista mostrar documentos ausentes.

Um documento está ausente se não existir, mas há subdocumentos aninhados abaixo dele. Quando verdadeiro, esses documentos ausentes serão retornados com uma chave, mas não terão campos, create_time ou update_time definidos.

Solicitações com show_missing não podem especificar where ou order_by.

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

bytes

Executa a leitura como parte de uma transação já ativa.

read_time

Timestamp

Executa a leitura no momento fornecido.

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.

ListDocumentsResponse

A resposta para Firestore.ListDocuments.

Campos
documents[]

Document

Os documentos encontrados.

next_page_token

string

Um token para recuperar a próxima página de documentos.

Se esse campo for omitido, não haverá páginas subsequentes.

ListenRequest

Uma solicitação de Firestore.Listen

Campos
database

string

Obrigatório. O nome do banco de dados. Use o formato: projects/{project_id}/databases/{database_id}.

labels

map<string, string>

Os rótulos associados a essa alteração de destino.

Campo de união target_change. O destino compatível é alterado. target_change pode ser apenas de um dos tipos a seguir:
add_target

Target

Um destino a ser adicionado a este stream.

remove_target

int32

O ID de uma segmentação a ser removida desse fluxo.

ListenResponse

A resposta para Firestore.Listen.

Campos
Campo de união response_type. As respostas compatíveis. response_type pode ser apenas de um dos tipos a seguir:
target_change

TargetChange

Os destinos foram alterados.

document_change

DocumentChange

Um Document mudou.

document_delete

DocumentDelete

Um Document foi excluído.

document_remove

DocumentRemove

Um Document foi removido de um destino porque não é mais relevante para ele.

filter

ExistenceFilter

Um filtro a ser aplicado ao conjunto de documentos retornados anteriormente para o destino especificado.

Retornado quando os documentos podem ter sido removidos do destino especificado, mas os documentos exatos são desconhecidos.

MapValue

Um valor de mapa.

Campos
fields

map<string, Value>

Campos do mapa.

As chaves do mapa representam nomes de campo. Os nomes de campo que correspondem à expressão regular __.*__ são reservados. Nomes de campo reservados são proibidos, exceto em determinados contextos documentados. As chaves do mapa, representadas como UTF-8, não podem exceder 1.500 bytes e não podem estar vazias.

PartitionQueryRequest

A solicitação para Firestore.PartitionQuery.

Campos
parent

string

Obrigatório. O nome do recurso pai. Use o formato: projects/{project_id}/databases/{database_id}/documents. Os nomes de recursos do documento não são aceitos. Só é possível especificar nomes de recursos de bancos de dados.

partition_count

int64

O número máximo desejado de pontos de partição. As partições podem ser retornadas em várias páginas de resultados. O número precisa ser positivo. O número real de partições retornadas pode ser menor.

Por exemplo, isso pode ser definido como uma quantidade a menos que o número de consultas paralelas a serem executadas ou, na execução de um job de pipeline de dados, um a menos que o número de workers ou instâncias de computação disponíveis.

page_token

string

O valor next_page_token retornado de uma chamada anterior para PartitionQuery que pode ser usado para receber um conjunto adicional de resultados. Não há garantias de ordenação entre conjuntos de resultados. Portanto, o uso de vários conjuntos de resultados exigirá a mesclagem de diferentes conjuntos de resultados.

Por exemplo, duas chamadas subsequentes usando um page_token podem retornar:

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

Para receber um conjunto de resultados completo ordenado com relação aos resultados da consulta fornecida para PartitionQuery, os conjuntos de resultados devem ser mesclados: cursor A, cursor B, cursor M, cursor Q, cursor U, cursor W

page_size

int32

O número máximo de partições a serem retornadas nesta chamada, sujeito a partition_count.

Por exemplo, se partition_count = 10 e page_size = 8, a primeira chamada para PartitionQuery retornará até oito partições e uma next_page_token se houver mais resultados. Uma segunda chamada para PartitionQuery retornará até duas partições, para concluir o total de 10 especificadas em partition_count.

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

StructuredQuery

Uma consulta estruturada. A consulta precisa especificar a coleção com todos os descendentes e ser ordenada por nome em ordem crescente. Outros filtros, itens de ordenação, limites, deslocamentos e cursores de início/término não são compatíveis.

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

Timestamp

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.

PartitionQueryResponse

A resposta para Firestore.PartitionQuery.

Campos
partitions[]

Cursor

Resultados da partição. Cada partição é um ponto de divisão que pode ser usado pelo RunQuery como ponto inicial ou final para os resultados da consulta. As solicitações RunQuery precisam ser feitas com a mesma consulta fornecida a essa solicitação PartitionQuery. Os cursores de partição serão ordenados de acordo com a mesma ordem dos resultados da consulta fornecida ao PartitionQuery.

Por exemplo, se uma solicitação PartitionQuery retornar os cursores de partição A e B, a execução das três consultas a seguir retornará todo o conjunto de resultados da consulta original:

  • consulta, end_at A
  • consulta, início_em A, término_em B
  • consulta, iniciar em B

Um resultado vazio pode indicar que a consulta tem poucos resultados para ser particionada ou que ela ainda não é compatível com particionamento.

next_page_token

string

Um token de página que pode ser usado para solicitar um conjunto adicional de resultados, até o número especificado por partition_count na solicitação PartitionQuery. Se o campo ficar em branco, não haverá mais resultados.

PlanSummary

Informações da fase de planejamento da consulta.

Campos
indexes_used[]

Struct

Os índices selecionados para a consulta. For example: [ {"query_scope": "Collection", "properties": "(foo ASC, name ASC)"}, {"query_scope": "Collection", "properties": "(bar ASC, name ASC)"} ]

Precondition

Uma pré-condição em um documento, usada para operações condicionais.

Campos
Campo de união condition_type. O tipo de condição prévia. condition_type pode ser apenas de um dos tipos a seguir:
exists

bool

Quando definido como true, o documento de destino precisa existir. Quando definido como false, o documento de destino não pode existir.

update_time

Timestamp

Quando definido, o documento de destino precisa existir e ter sido atualizado pela última vez naquele momento. O carimbo de data/hora precisa estar alinhado em microssegundos.

RollbackRequest

A solicitação para Firestore.Rollback.

Campos
database

string

Obrigatório. O nome do banco de dados. Use o formato: projects/{project_id}/databases/{database_id}.

transaction

bytes

Obrigatório. A transação a ser revertida.

RunAggregationQueryRequest

A solicitação para Firestore.RunAggregationQuery.

Campos
parent

string

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

explain_options

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

StructuredAggregationQuery

Uma consulta de agregação.

Campo de união consistency_selector. O modo de consistência da consulta. O padrão é consistência forte. consistency_selector pode ser apenas de um dos tipos a seguir:
transaction

bytes

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

O valor aqui é o ID da transação opaco em que a consulta será executada.

new_transaction

TransactionOptions

Inicia uma nova transação como parte da consulta, assumindo o padrão somente leitura.

O novo ID da transação vai ser retornado como a primeira resposta no fluxo.

read_time

Timestamp

Executa a consulta no carimbo de data/hora fornecido.

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.

RunAggregationQueryResponse

A resposta para Firestore.RunAggregationQuery.

Campos
result

AggregationResult

Um único resultado de agregação.

Não está presente ao informar progresso parcial.

transaction

bytes

A transação que foi iniciada como parte desta solicitação.

Presente apenas na primeira resposta quando a solicitação é solicitada para iniciar uma nova transação.

read_time

Timestamp

A hora em que o resultado agregado foi calculado. Isso sempre aumenta monotonicamente. Nesse caso, há a garantia de que o AggregateResult anterior no fluxo de resultado não muda entre o read_time e esse.

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

explain_metrics

ExplainMetrics

Métricas de explicação de consulta. Ele só está presente quando o RunAggregationQueryRequest.explain_options é fornecido e é enviado apenas uma vez com a última resposta no stream.

RunQueryRequest

A solicitação para Firestore.RunQuery.

Campos
parent

string

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

explain_options

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

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

bytes

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

O valor aqui é o ID da transação opaco em que a consulta será executada.

new_transaction

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.

read_time

Timestamp

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.

RunQueryResponse

A resposta para Firestore.RunQuery.

Campos
transaction

bytes

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.

document

Document

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

read_time

Timestamp

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 read_time e o atual.

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

skipped_results

int32

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

explain_metrics

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

bool

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

StructuredAggregationQuery

Consulta do Firestore para executar uma agregação em um StructuredQuery.

Campos
aggregations[]

Aggregation

Opcional. Série de agregações que vão ser aplicadas aos resultados da structured_query.

Requer:

  • No mínimo uma e no máximo cinco agregações por consulta.
Campo de união query_type. A consulta de base para agregação. query_type pode ser apenas de um dos tipos a seguir:
structured_query

StructuredQuery

Consulta estruturada aninhada.

Agregação

Define uma agregação que produz um único resultado.

Campos
alias

string

Opcional. Nome opcional do campo em que o resultado da agregação é armazenado.

Se não for fornecido, o Firestore escolherá um nome padrão seguindo o formato field_<incremental_id++>. Exemplo:

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

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

Requer:

  • Precisa ser exclusivo entre todos os aliases de agregação.
  • estar em conformidade com as limitações do document field name;
Campo de união operator. O tipo de agregação a ser realizada, obrigatório. operator pode ser apenas de um dos tipos a seguir:
count

Count

Agregador de contagem.

sum

Sum

Agregador de soma.

avg

Avg

Agregador médio.

Méd.

Média dos valores do campo solicitado.

  • Somente valores numéricos serão agregados. Todos os valores não numéricos, incluindo NULL, são ignorados.

  • Se os valores agregados contiverem NaN, retornará NaN. A matemática do infinito segue os padrões IEEE-754.

  • Se o conjunto de valores agregados estiver vazio, será retornado NULL.

  • Sempre retorna o resultado como double.

Campos
field

FieldReference

O campo no qual agregar.

Contagem

Contagem de documentos que correspondem à consulta.

A função de agregação COUNT(*) opera em todo o documento. Por isso, não requer uma referência de campo.

Campos
up_to

Int64Value

Opcional. Restrição opcional para o número máximo de documentos a serem contabilizados.

Dessa forma, é possível definir um limite superior para o número de documentos a serem verificados, limitando a latência e o custo.

Um valor não especificado é interpretado como "sem limite".

Exemplo de alto nível:

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

Requer:

  • Precisa ser maior que zero quando presente.

Sum

Soma dos valores do campo solicitado.

  • Somente valores numéricos serão agregados. Todos os valores não numéricos, incluindo NULL, são ignorados.

  • Se os valores agregados contiverem NaN, retornará NaN. A matemática do infinito segue os padrões IEEE-754.

  • Se o conjunto de valores agregados estiver vazio, retornará 0.

  • Retorna um número inteiro de 64 bits se todos os números agregados forem inteiros e o resultado da soma não estourar. Caso contrário, o resultado será retornado como double. Mesmo que todos os valores agregados sejam inteiros, o resultado será retornado como duplo se não couber em um número inteiro assinado de 64 bits. Quando isso ocorrer, o valor retornado vai perder a precisão.

  • Quando ocorre subfluxo, a agregação de ponto flutuante não é determinista. Isso significa que executar a mesma consulta repetidamente sem nenhuma alteração dos valores subjacentes pode produzir resultados um pouco diferentes a cada vez. Nesses casos, os valores devem ser armazenados como números inteiros sobre números de ponto flutuante.

Campos
field

FieldReference

O campo no qual agregar.

StructuredQuery

Uma consulta do Firestore.

Campos
select

Projection

Subconjunto opcional dos campos a serem retornados.

Ele atua como um DocumentMask sobre os documentos retornados de uma consulta. Quando não definido, presume que o autor da chamada quer que todos os campos sejam retornados.

from[]

CollectionSelector

As coleções a serem consultadas.

where

Filter

O filtro a ser aplicado.

order_by[]

Order

A ordem a ser aplicada aos resultados da consulta.

O Firestore permite que os autores da chamada forneçam uma ordem completa, uma parcial ou nenhuma ordem. Em todos os casos, o Firestore garante uma ordem estável usando estas regras:

  • O order_by é obrigatório para referenciar todos os campos usados com um filtro de desigualdade.
  • Todos os campos que precisam estar no order_by, mas ainda não estão presentes, são anexados na ordem lexicográfica do nome do campo.
  • Se um pedido em __name__ não for especificado, ele será anexado por padrão.

Os campos são anexados com a mesma direção de classificação que o último pedido especificado ou 'ASCENDING' se nenhum pedido tiver sido especificado. Exemplo:

  • ORDER BY a se torna ORDER BY a ASC, __name__ ASC
  • ORDER BY a DESC se torna ORDER BY a DESC, __name__ DESC
  • WHERE a > 1 se torna WHERE a > 1 ORDER BY a ASC, __name__ ASC
  • WHERE __name__ > ... AND a > 1 se torna WHERE __name__ > ... AND a > 1 ORDER BY a ASC, __name__ ASC
start_at

Cursor

Um possível prefixo de uma posição no conjunto de resultados em que a consulta será iniciada.

A ordem do conjunto de resultados é baseada na cláusula ORDER BY da consulta original.

SELECT * FROM k WHERE a = 1 AND b > 2 ORDER BY b ASC, __name__ ASC;

Os resultados dessa consulta são ordenados por (b ASC, __name__ ASC).

Os cursores podem fazer referência à ordem completa ou a um prefixo da localização, embora não possam referenciar mais campos do que estão no ORDER BY fornecido.

Continuando com o exemplo acima, anexar os seguintes cursores iniciais terá um impacto variável:

  • START BEFORE (2, /k/123): inicia a consulta logo antes de a = 1 AND b > 2 AND __name__ > /k/123.
  • START AFTER (10): inicia a consulta logo após a = 1 AND b > 10.

Ao contrário de OFFSET, que requer a verificação dos primeiros N resultados para pular, um cursor inicial permite que a consulta comece em uma posição lógica. Esta posição não é necessária para corresponder a um resultado real; ela vai procurar o próximo documento nessa posição.

Requer:

  • O número de valores não pode ser maior que o número de campos especificado na cláusula ORDER BY.
end_at

Cursor

Um possível prefixo de uma posição no conjunto de resultados em que a consulta será encerrada.

Isso é semelhante ao START_AT, mas controla a posição final, em vez da posição inicial.

Requer:

  • O número de valores não pode ser maior que o número de campos especificado na cláusula ORDER BY.
offset

int32

O número de documentos a serem pulados antes de retornar o primeiro resultado.

Isso se aplica após as restrições especificadas por WHERE, START AT e END AT, mas antes da cláusula LIMIT.

Requer:

  • O valor precisa ser maior ou igual a zero, se especificado.
limit

Int32Value

O número máximo de resultados a serem retornados.

Aplica-se depois de todas as outras restrições.

Requer:

  • O valor precisa ser maior ou igual a zero, se especificado.

CollectionSelector

Uma seleção de uma coleção, como messages as m1.

Campos
collection_id

string

O ID da coleção. Quando definido, seleciona apenas as coleções com esse ID.

all_descendants

bool

Quando definido como falso, seleciona apenas coleções que são filhas imediatas do parent especificado no RunQueryRequest contido. Quando verdadeiro, seleciona todas as coleções descendentes.

CompositeFilter

Um filtro que mescla vários outros filtros usando o operador fornecido.

Campos
op

Operator

Operador para combinar vários filtros.

filters[]

Filter

Lista de filtros a serem combinados.

Requer:

  • Pelo menos um filtro está presente.

Operador

Um operador de filtro composto.

Enums
OPERATOR_UNSPECIFIED Não especificado. Esse valor não pode ser usado.
AND Os documentos precisam atender a todos os filtros combinados.
OR Os documentos precisam atender a pelo menos um dos filtros combinados.

Direção

Uma direção de classificação.

Enums
DIRECTION_UNSPECIFIED Não especificado.
ASCENDING Crescente.
DESCENDING Decrescente.

FieldFilter

Um filtro em um campo específico.

Campos
field

FieldReference

O campo para filtrar.

op

Operator

O operador a ser filtrado.

value

Value

O valor a ser comparado.

Operador

Um operador de filtro de campo.

Enums
OPERATOR_UNSPECIFIED Não especificado. Esse valor não pode ser usado.
LESS_THAN

O field fornecido é menor que o value especificado.

Requer:

  • Esse field vem em primeiro lugar em order_by.
LESS_THAN_OR_EQUAL

A field especificada é menor ou igual à value especificada.

Requer:

  • Esse field vem em primeiro lugar em order_by.
GREATER_THAN

O field fornecido é maior que o value fornecido.

Requer:

  • Esse field vem em primeiro lugar em order_by.
GREATER_THAN_OR_EQUAL

A field especificada é maior ou igual à value especificada.

Requer:

  • Esse field vem em primeiro lugar em order_by.
EQUAL O field fornecido é igual ao value especificado.
NOT_EQUAL

O field fornecido não é igual ao value especificado.

Requer:

  • Nenhum outro NOT_EQUAL, NOT_IN, IS_NOT_NULL ou IS_NOT_NAN.
  • Esse field vem em primeiro lugar no order_by.
ARRAY_CONTAINS O field fornecido é uma matriz que contém o value especificado.
IN

O field fornecido é igual a pelo menos um valor na matriz especificada.

Requer:

  • Esse value é um ArrayValue não vazio, sujeito a limites de disjunção.
  • Não há filtros NOT_IN na mesma consulta.
ARRAY_CONTAINS_ANY

O field fornecido é uma matriz que contém qualquer um dos valores dela.

Requer:

  • Esse value é um ArrayValue não vazio, sujeito a limites de disjunção.
  • Não há outros filtros ARRAY_CONTAINS_ANY na mesma disjunção.
  • Não há filtros NOT_IN na mesma consulta.
NOT_IN

O valor de field não está na matriz especificada.

Requer:

  • Esse value é um ArrayValue não vazio com no máximo 10 valores.
  • Nenhuma outra OR, IN, ARRAY_CONTAINS_ANY, NOT_IN, NOT_EQUAL, IS_NOT_NULL ou IS_NOT_NAN.
  • Esse field vem em primeiro lugar no order_by.

FieldReference

Uma referência a um campo em um documento, por exemplo: stats.operations.

Campos
field_path

string

Uma referência a um campo em um documento.

Requer:

  • PRECISA ser uma string de segmentos delimitada por pontos (.), em que cada segmento deve estar em conformidade com as limitações de document field name.

Filtrar

Um filtro.

Campos
Campo de união filter_type. O tipo de filtro. filter_type pode ser apenas de um dos tipos a seguir:
composite_filter

CompositeFilter

Um filtro composto.

field_filter

FieldFilter

Um filtro em um campo do documento.

unary_filter

UnaryFilter

Um filtro que usa exatamente um argumento.

Pedido

Um pedido em um campo.

Campos
field

FieldReference

O campo pelo qual ordenar.

direction

Direction

A direção de ordenação. O valor padrão é ASCENDING.

Projeção

A projeção dos campos do documento a serem retornados.

Campos
fields[]

FieldReference

Os campos a serem retornados.

Se estiver vazio, todos os campos serão retornados. Para retornar apenas o nome do documento, use ['__name__'].

UnaryFilter

Um filtro com um único operando.

Campos
op

Operator

O operador unário a ser aplicado.

Campo de união operand_type. O argumento para o filtro. operand_type pode ser apenas de um dos tipos a seguir:
field

FieldReference

O campo em que o operador será aplicado.

Operador

Um operador unário.

Enums
OPERATOR_UNSPECIFIED Não especificado. Esse valor não pode ser usado.
IS_NAN O field fornecido é igual a NaN.
IS_NULL O field fornecido é igual a NULL.
IS_NOT_NAN

O field fornecido não é igual a NaN.

Requer:

  • Nenhum outro NOT_EQUAL, NOT_IN, IS_NOT_NULL ou IS_NOT_NAN.
  • Esse field vem em primeiro lugar no order_by.
IS_NOT_NULL

O field fornecido não é igual a NULL.

Requer:

  • Uma única NOT_EQUAL, NOT_IN, IS_NOT_NULL ou IS_NOT_NAN.
  • Esse field vem em primeiro lugar no order_by.

Objetivo

Uma especificação de um conjunto de documentos a serem detectados.

Campos
target_id

int32

É o ID de destino que identifica o destino no fluxo. Precisa ser um número positivo e diferente de zero.

Se target_id for 0 (ou não especificado), o servidor atribuirá um ID para o destino e o retornará em um evento TargetChange::ADD. Depois que um destino com target_id=0 é adicionado, todos os destinos subsequentes também precisam ter target_id=0. Se uma solicitação AddTarget com target_id != 0 for enviada ao servidor depois que um destino com target_id=0 for adicionado, o servidor vai enviar imediatamente uma resposta com um evento TargetChange::Remove.

Se o cliente enviar várias solicitações AddTarget sem um ID, a ordem dos IDs retornados em TargetChage.target_ids será indefinida. Portanto, os clientes precisam fornecer um ID de destino em vez de depender do servidor para atribuí-lo.

Se target_id for diferente de zero, não poderá haver uma segmentação ativa no stream com o mesmo ID.

once

bool

Se o destino precisa ser removido quando estiver atual e consistente.

expected_count

Int32Value

O número de documentos que corresponderam à consulta por último no token de currículo ou no momento de leitura.

Esse valor só é relevante quando um resume_type é fornecido. Se o valor estiver presente e for maior que zero, o cliente quer que ExistenceFilter.unchanged_names seja incluído na resposta.

Campo de união target_type. O tipo de destino a ser detectado. target_type pode ser apenas de um dos tipos a seguir:
query

QueryTarget

Um destino especificado por uma consulta.

documents

DocumentsTarget

Um destino especificado por um conjunto de nomes de documentos.

Campo de união resume_type. Quando começar a ouvir?

Se especificado, somente os documentos correspondentes que foram atualizados APÓS o resume_token ou read_time serão retornados. Caso contrário, todos os Documentos correspondentes serão retornados antes de qualquer mudança posterior. resume_type pode ser apenas de um dos tipos a seguir:

resume_token

bytes

Um token de currículo de um TargetChange anterior para um destino idêntico.

Não é possível usar um token de currículo com um destino diferente e pode haver falha.

read_time

Timestamp

Comece a ouvir depois de um read_time específico.

Neste momento, o cliente precisa saber o estado dos documentos correspondentes.

DocumentsTarget

Um destino especificado por um conjunto de nomes de documentos.

Campos
documents[]

string

Os nomes dos documentos a serem recuperados. Use o formato: projects/{project_id}/databases/{database_id}/documents/{document_path}. A solicitação falhará se algum dos documentos não for um recurso filho do database especificado. Nomes duplicados serão ocultados.

QueryTarget

Um destino especificado por uma consulta.

Campos
parent

string

O nome do recurso pai. Use o formato: projects/{project_id}/databases/{database_id}/documents ou projects/{project_id}/databases/{database_id}/documents/{document_path}. Por exemplo: projects/my-project/databases/my-database/documents ou projects/my-project/databases/my-database/documents/chatrooms/my-chatroom

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

StructuredQuery

Uma consulta estruturada.

TargetChange

Os objetivos monitorados mudaram.

Campos
target_change_type

TargetChangeType

O tipo de alteração que ocorreu.

target_ids[]

int32

Os IDs dos destinos que foram alterados.

Se estiver vazio, a mudança vai ser aplicada a todos os destinos.

A ordem dos IDs de destino não foi definida.

cause

Status

O erro que resultou nessa alteração, se aplicável.

resume_token

bytes

Um token que pode ser usado para retomar o stream para o target_ids especificado ou todos os destinos se target_ids estiver vazio.

Não é definido em cada alteração de meta.

read_time

Timestamp

O read_time consistente para o target_ids especificado (omitido quando target_ids não está em um snapshot consistente).

O stream vai enviar um read_time com target_ids vazio sempre que todo o stream atingir um novo snapshot consistente. As mensagens ADD, CURRENT e RESET têm a garantia de resultarem (no fim) em um novo instantâneo consistente (enquanto as mensagens NO_CHANGE e REMOVE não são).

É garantido que o read_time vai aumentar monotonicamente para um determinado stream.

TargetChangeType

O tipo de alteração

Enums
NO_CHANGE Nenhuma mudança foi feita. Usado apenas para enviar um resume_token atualizado.
ADD Os destinos foram adicionados.
REMOVE Os destinos foram removidos.
CURRENT

Os destinos refletem todas as alterações confirmadas antes da adição deles ao stream.

Ele será enviado depois ou com um read_time maior ou igual ao horário em que os destinos foram adicionados.

Os listeners podem aguardar essa mudança se quiserem a semântica de leitura após gravação.

RESET

Os destinos foram redefinidos, e um novo estado inicial para eles será retornado nas próximas mudanças.

Após a conclusão do estado inicial, CURRENT será retornado mesmo que o destino tenha sido indicado anteriormente como CURRENT.

TransactionOptions

Opções para criar uma nova transação.

Campos
Campo de união mode. O modo da transação. mode pode ser apenas de um dos tipos a seguir:
read_only

ReadOnly

A transação só pode ser usada para operações de leitura.

read_write

ReadWrite

A transação pode ser usada para operações de leitura e gravação.

ReadOnly

Opções para uma transação que só pode ser usada para ler documentos.

Campos
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:
read_time

Timestamp

Lê os documentos no momento especificado.

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.

ReadWrite

Opções para uma transação que podem ser usadas para ler e gravar documentos.

O Firestore não permite que solicitações de autenticação de terceiros criem transações de leitura/gravação.

Campos
retry_transaction

bytes

Uma transação opcional para nova tentativa.

UpdateDocumentRequest

A solicitação para Firestore.UpdateDocument.

Campos
document

Document

Obrigatório. O documento atualizado. Cria o documento se ele ainda não existir.

update_mask

DocumentMask

Os campos a serem atualizados. Nenhum dos caminhos de campo da máscara pode conter um nome reservado.

Se o documento existir no servidor e tiver campos não referenciados na máscara, eles não serão alterados. Os campos referenciados na máscara, mas ausentes no documento de entrada, são excluídos do documento no servidor.

mask

DocumentMask

Os campos a serem retornados. Se não definido, retorna todos os campos.

Se o documento tiver um campo ausente nessa máscara, esse campo não será retornado na resposta.

current_document

Precondition

Uma condição prévia opcional no documento. A solicitação falhará se isso for definido e não for atendido pelo documento de destino.

Valor

Uma mensagem que pode conter qualquer um dos tipos de valor compatíveis.

Campos
Campo de união value_type. Precisa ter um valor definido. value_type pode ser apenas de um dos tipos a seguir:
null_value

NullValue

Um valor nulo.

boolean_value

bool

Um valor booleano.

integer_value

int64

Um valor inteiro.

double_value

double

Um valor duplo.

timestamp_value

Timestamp

Um valor de carimbo de data/hora.

Precisão apenas em microssegundos. Quando armazenadas, qualquer precisão adicional é arredondada para baixo.

string_value

string

Um valor de string.

A string, representada como UTF-8, não pode exceder 1 MiB a 89 bytes. Somente os primeiros 1.500 bytes da representação UTF-8 são considerados nas consultas.

bytes_value

bytes

Um valor de bytes.

Não pode exceder 1 MiB a 89 bytes. Somente os primeiros 1.500 bytes são considerados nas consultas.

reference_value

string

Uma referência a um documento. Por exemplo, projects/{project_id}/databases/{database_id}/documents/{document_path}.

geo_point_value

LatLng

Um valor do ponto geográfico que representa um ponto na superfície da Terra.

array_value

ArrayValue

Um valor de matriz.

Não pode conter diretamente outro valor de matriz, embora possa conter um mapa que contenha outra matriz.

map_value

MapValue

Um valor de mapa.

Gravar

Uma gravação em um documento.

Campos
update_mask

DocumentMask

Os campos a serem atualizados nessa gravação.

Este campo só pode ser definido quando a operação é update. Se a máscara não for definida para uma update e o documento existir, todos os dados atuais serão substituídos. Se a máscara estiver definida e o documento no servidor tiver campos não cobertos pela máscara, eles não serão alterados. Os campos referenciados na máscara, mas ausentes no documento de entrada, são excluídos do documento no servidor. Os caminhos de campo dessa máscara não podem conter um nome de campo reservado.

update_transforms[]

FieldTransform

As transformações a serem executadas após a atualização.

Este campo só pode ser definido quando a operação é update. Se presente, essa gravação é equivalente a executar update e transform no mesmo documento atomicamente e em ordem.

current_document

Precondition

Uma condição prévia opcional no documento.

A gravação falhará se isso for definido e não atendido pelo documento de destino.

Campo de união operation. A operação a ser executada. operation pode ser apenas de um dos tipos a seguir:
update

Document

Um documento para gravar.

delete

string

Um nome de documento a ser excluído. Use o formato: projects/{project_id}/databases/{database_id}/documents/{document_path}.

transform

DocumentTransform

Aplica uma transformação a um documento.

WriteRequest

A solicitação para Firestore.Write.

A primeira solicitação cria um stream ou retoma outro existente a partir de um token.

Ao criar um novo stream, o servidor responde com uma resposta contendo apenas um ID e um token, para uso na próxima solicitação.

Ao retomar um stream, o servidor primeiro transmite as respostas depois do token fornecido e, em seguida, uma resposta contendo apenas um token atualizado, para uso na próxima solicitação.

Campos
database

string

Obrigatório. O nome do banco de dados. Use o formato: projects/{project_id}/databases/{database_id}. Isso só é necessário na primeira mensagem.

stream_id

string

O ID do fluxo de gravação a ser retomado. Só é possível definir isso na primeira mensagem. Quando deixado em branco, um novo stream de gravação é criado.

writes[]

Write

As gravações a serem aplicadas.

Sempre executado atomicamente e em ordem. Ele precisa estar vazio na primeira solicitação. Ele pode estar vazio na última solicitação. Ele não pode ficar vazio em todas as outras solicitações.

stream_token

bytes

Um token de stream que foi enviado anteriormente pelo servidor.

O cliente precisa definir esse campo como o token do WriteResponse mais recente que recebeu. Isso confirma que o cliente recebeu respostas até esse token. Depois do envio desse token, os tokens anteriores não poderão mais ser usados.

O servidor pode fechar o stream se houver muitas respostas não confirmadas.

Não defina este campo ao criar um novo stream. Para retomar uma transmissão em um ponto específico, defina este campo e o campo stream_id.

Não defina este campo ao criar um novo stream.

labels

map<string, string>

Rótulos associados a esta solicitação de gravação.

WriteResponse

A resposta para Firestore.Write.

Campos
stream_id

string

O ID do fluxo. Definido apenas na primeira mensagem, quando uma nova transmissão foi criada.

stream_token

bytes

Um token que representa a posição da resposta no stream. Isso pode ser usado por um cliente para retomar o stream neste ponto.

Este campo está sempre definido.

write_results[]

WriteResult

O resultado da aplicação das gravações.

O resultado i-th write corresponde à i-th write na solicitação.

commit_time

Timestamp

A hora em que a confirmação ocorreu. Qualquer leitura com um read_time igual ou maior vai garantir que os efeitos da gravação sejam mostrados.

WriteResult

Resultado da aplicação de uma gravação.

Campos
update_time

Timestamp

O horário da última atualização do documento após a aplicação da gravação. Não definido após um delete.

Se a gravação não tiver alterado o documento, esse será o update_time anterior.

transform_results[]

Value

Os resultados da aplicação de cada DocumentTransform.FieldTransform, na mesma ordem.