Package google.firestore.v1

Índice

Armazém de Fogo

O serviço 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 móveis, da Web e de IoT em escala global. Suas bibliotecas de cliente fornecem sincronização ao vivo e suporte off-line, enquanto seus recursos de segurança e integrações com Firebase e Google Cloud Platform aceleram a construção de aplicativos verdadeiramente sem servidor.

LoteGetDocuments

rpc BatchGetDocuments( BatchGetDocumentsRequest ) returns ( BatchGetDocumentsResponse )

Obtém vários documentos.

Não há garantia de que os documentos devolvidos por este método serão devolvidos na mesma ordem em que foram solicitados.

Escopos de autorização

Requer um dos seguintes escopos OAuth:

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

Para obter mais informações, consulte 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 BatchWriteResponse para obter o status de sucesso de cada gravação.

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

Escopos de autorização

Requer um dos seguintes escopos OAuth:

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

Para obter mais informações, consulte 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 OAuth:

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

Para obter mais informações, consulte Visão geral da autenticação .

Comprometer-se

rpc Commit( CommitRequest ) returns ( CommitResponse )

Confirma uma transação, enquanto opcionalmente atualiza documentos.

Escopos de autorização

Requer um dos seguintes escopos OAuth:

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

Para obter mais informações, consulte Visão geral da autenticação .

Criar Documento

rpc CreateDocument( CreateDocumentRequest ) returns ( Document )

Cria um novo documento.

Escopos de autorização

Requer um dos seguintes escopos OAuth:

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

Para obter mais informações, consulte Visão geral da autenticação .

Excluir documento

rpc DeleteDocument( DeleteDocumentRequest ) returns ( Empty )

Exclui um documento.

Escopos de autorização

Requer um dos seguintes escopos OAuth:

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

Para obter mais informações, consulte Visão geral da autenticação .

Obter documento

rpc GetDocument( GetDocumentRequest ) returns ( Document )

Obtém um único documento.

Escopos de autorização

Requer um dos seguintes escopos OAuth:

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

Para obter mais informações, consulte Visão geral da autenticação .

ListaCollectionIds

rpc ListCollectionIds( ListCollectionIdsRequest ) returns ( ListCollectionIdsResponse )

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

Escopos de autorização

Requer um dos seguintes escopos OAuth:

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

Para obter mais informações, consulte Visão geral da autenticação .

ListaDocumentos

rpc ListDocuments( ListDocumentsRequest ) returns ( ListDocumentsResponse )

Lista documentos.

Escopos de autorização

Requer um dos seguintes escopos OAuth:

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

Para obter mais informações, consulte 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 OAuth:

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

Para obter mais informações, consulte Visão geral da autenticação .

PartiçãoQuery

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 pontos inicial/final para os resultados da consulta.

Escopos de autorização

Requer um dos seguintes escopos OAuth:

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

Para obter mais informações, consulte 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 OAuth:

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

Para obter mais informações, consulte Visão geral da autenticação .

ExecutarAggregationQuery

rpc RunAggregationQuery( RunAggregationQueryRequest ) returns ( RunAggregationQueryResponse )

Executa uma consulta de agregação.

Em vez de produzir resultados Document como Firestore.RunQuery , esta 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 OAuth:

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

Para obter mais informações, consulte Visão geral da autenticação .

Executar Consulta

rpc RunQuery( RunQueryRequest ) returns ( RunQueryResponse )

Executa uma consulta.

Escopos de autorização

Requer um dos seguintes escopos OAuth:

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

Para obter mais informações, consulte Visão geral da autenticação .

AtualizarDocumento

rpc UpdateDocument( UpdateDocumentRequest ) returns ( Document )

Atualiza ou insere um documento.

Escopos de autorização

Requer um dos seguintes escopos OAuth:

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

Para obter mais informações, consulte Visão geral da autenticação .

Escrever

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

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

Para obter mais informações, consulte Visão geral da autenticação .

Resultado de agregação

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 presentes para cada resultado.

Campos
aggregate_fields

map<string, Value >

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

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

ArrayValue

Um valor de matriz.

Campos
values[]

Value

Valores na matriz.

Solicitação de BatchGetDocuments

A solicitação para Firestore.BatchGetDocuments .

Campos
database

string

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

documents[]

string

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

mask

DocumentMask

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

Caso um documento possua um campo que não esteja presente nesta 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 é consistência forte. consistency_selector pode ser apenas um dos seguintes:
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 será retornado como a primeira resposta no stream.

read_time

Timestamp

Lê documentos como eles estavam no momento determinado.

Deve ser um carimbo de data/hora com precisão de microssegundos da última hora ou, se a recuperação pontual estiver ativada, também pode ser um carimbo de hora de um minuto inteiro dos últimos 7 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 somente se BatchGetDocumentsRequest.new_transaction tiver sido definido na solicitação.

read_time

Timestamp

A hora em que o documento foi lido. Isso pode aumentar monoticamente, neste caso é garantido que os documentos anteriores no fluxo de resultados não foram alterados entre seu read_time e este.

result do campo de união. Um único resultado. Pode ficar vazio se o servidor estiver apenas retornando uma transação. result pode ser apenas um dos seguintes:
found

Document

Um documento que foi solicitado.

missing

string

Um nome de documento que foi solicitado, mas não existe. No 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. No formato: projects/{project_id}/databases/{database_id} .

writes[]

Write

As escritas para aplicar.

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

labels

map<string, string>

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

BatchWriteResponse

A resposta de Firestore.BatchWrite .

Campos
write_results[]

WriteResult

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

Este i-ésimo resultado de gravação corresponde à i-ésima gravação na solicitação.

status[]

Status

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

Este i-ésimo status de gravação corresponde à i-ésima gravação na solicitação.

BeginTransactionRequest

A solicitação para Firestore.BeginTransaction .

Campos
database

string

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

options

TransactionOptions

As opções para a transação. O padrão é uma transação de leitura e gravação.

BeginTransactionResponse

A resposta para Firestore.BeginTransaction .

Campos
transaction

bytes

A transação que foi iniciada.

Sequência de bits

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 8 bits ou menos . O padding define o número de bits do último byte a ser ignorado como "preenchimento". Os valores desses bits de "preenchimento" não são especificados e devem ser ignorados.

Para recuperar o primeiro bit, 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. Pode ter comprimento zero.

padding

int32

O número de bits do último byte no bitmap a serem ignorados como "preenchimento". Se o comprimento do bitmap for zero, esse valor deverá ser 0 . Caso contrário, este valor deverá estar entre 0 e 7, inclusive.

Filtro Bloom

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

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

Esses dois valores de hash, denominados h1 e h2 , são entã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 do número de bits no filtro Bloom para obter os bits do filtro Bloom para testar a entrada fornecida.

Campos
bits

BitSequence

Os dados do filtro Bloom.

hash_count

int32

O número de hashes usados ​​pelo algoritmo.

Solicitação de confirmação

A solicitação para Firestore.Commit .

Campos
database

string

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

writes[]

Write

As escritas para aplicar.

Sempre executado atomicamente e em ordem.

transaction

bytes

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

CommitResponse

A resposta para Firestore.Commit .

Campos
write_results[]

WriteResult

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

Este i-ésimo resultado de gravação corresponde à i-ésima gravação na solicitação.

commit_time

Timestamp

A hora em que o commit ocorreu. Qualquer leitura com read_time igual ou maior verá os efeitos do commit.

CriarDocumentRequest

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 para este documento.

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

document

Document

Obrigatório. O documento a ser criado. name não deve ser definido.

mask

DocumentMask

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

Caso o documento possua um campo que não esteja presente nesta 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 na cláusula order by de uma consulta.

Pode conter menos valores do que o especificado na cláusula order by.

before

bool

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

ExcluirDocumentRequest

A solicitação para Firestore.DeleteDocument .

Campos
name

string

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

current_document

Precondition

Uma pré-condição 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 deve exceder 1 MiB – 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.

Este valor aumenta monotonicamente quando um documento é excluído e depois recriado. Também pode ser comparado a valores de outros documentos e ao read_time de uma consulta.

update_time

Timestamp

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

Este valor é inicialmente definido como create_time e depois aumenta monotonicamente com cada alteração no documento. Também pode ser comparado a valores de outros documentos e ao read_time de uma consulta.

Alteração de Documento

Um Document foi alterado.

Pode ser o resultado de múltiplas writes , incluindo exclusões, que resultaram em um novo valor para 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 do Document .

Se mask estiver definida, 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 de destino para destinos que não correspondem mais a este documento.

Excluir documento

Um Document foi excluído.

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

Várias mensagens DocumentDelete podem 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 destino para destinos que anteriormente correspondiam a esta 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.

Máscara de Documento

Um conjunto de caminhos de campo em um documento. Usado para restringir uma operação get ou update em um documento a um subconjunto de seus campos. Isso é diferente das máscaras de campo padrão, pois sempre tem como escopo um Document e leva em consideração a natureza dinâmica de Value .

Campos
field_paths[]

string

A lista de caminhos de campo na máscara. Consulte Document.fields para obter uma referência de sintaxe do caminho do campo.

DocumentRemover

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

Enviado se o documento não for mais relevante para um destino e estiver fora de vista. Pode ser enviado em vez de DocumentDelete ou DocumentChange se o servidor não puder enviar o novo valor do documento.

Várias mensagens DocumentRemove podem 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 do Document que saiu da visualização.

removed_target_ids[]

int32

Um conjunto de IDs de alvos que correspondiam 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 alteração/exclusão/remoção.

DocumentTransform

Uma 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. Isto não deve estar vazio.

Transformação de campo

Uma transformação de um campo do documento.

Campos
field_path

string

O caminho do campo. Consulte Document.fields para obter a referência de sintaxe do caminho do campo.

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

ServerValue

Define o campo para o valor do servidor fornecido.

increment

Value

Adiciona o valor fornecido ao valor atual do campo.

Deve 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 o valor fornecido ou o valor do campo atual forem duplos, 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úmero inteiro positivo/negativo, o campo será resolvido para o número inteiro positivo/negativo de maior magnitude.

maximum

Value

Define o campo para o máximo entre seu valor atual e o valor fornecido.

Deve 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 onde o campo e o valor de entrada são de tipos mistos (isto é - um é um número inteiro e o outro é um duplo), o campo assume o tipo do operando maior. Se os operandos forem equivalentes (ex. 3 e 3.0), o campo não muda. 0, 0,0 e -0,0 são todos zero. O máximo de um valor armazenado zero 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.

Deve 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 de entrada. Se uma operação mínima for aplicada onde o campo e o valor de entrada são de tipos mistos (isto é - um é um número inteiro e o outro é um duplo), o campo assume o tipo do operando menor. Se os operandos forem equivalentes (ex. 3 e 3.0), o campo não muda. 0, 0,0 e -0,0 são todos zero. O mínimo de um valor armazenado zero 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, caso eles ainda não estejam presentes no valor do campo atual. Se o campo não for uma matriz ou se ainda não existir, ele será primeiro definido como uma matriz vazia.

Números equivalentes de tipos diferentes (por exemplo, 3L e 3,0) são considerados iguais ao verificar se um valor está faltando. NaN é igual a NaN e Nulo é igual a Nulo. Se a entrada contiver vários valores equivalentes, apenas 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 o campo ainda não existir, ele será definido como uma matriz vazia.

Números equivalentes dos diferentes tipos (por exemplo, 3L e 3,0) são considerados iguais ao decidir se um elemento deve ser removido. NaN é igual a NaN e Nulo é igual a Nulo. Isso removerá todos os valores equivalentes se houver duplicatas.

O transform_result correspondente será o valor nulo.

Valor do servidor

Um valor calculado pelo servidor.

Enums
SERVER_VALUE_UNSPECIFIED Não especificado. Este valor não deve 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 receberão o mesmo carimbo de data/hora do servidor.

Filtro de Existência

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

Campos
target_id

int32

O ID de destino ao qual esse filtro se aplica.

count

int32

A contagem total de documentos que correspondem target_id .

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

O cliente pode usar o filtro Bloom unchanged_names para auxiliar nessa determinação, testando TODOS os nomes de documentos em relação ao filtro; se o nome do documento NÃO estiver no filtro, significa que o documento não corresponde mais ao destino.

unchanged_names

BloomFilter

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

Este filtro bloom pode ser omitido a critério do servidor, como se for considerado que o cliente não fará uso dele ou se for muito caro do ponto de vista computacional para calcular ou transmitir. Os clientes devem lidar normalmente com a ausência desse campo, recorrendo à lógica usada antes da existência desse campo; isto é, adicione novamente o destino sem um token de retomada para descobrir quais documentos no cache do cliente estão fora de sincronia.

ObterDocumentRequest

A solicitação para Firestore.GetDocument .

Campos
name

string

Obrigatório. O nome do recurso do Documento a ser obtido. No formato: projects/{project_id}/databases/{database_id}/documents/{document_path} .

mask

DocumentMask

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

Caso o documento possua um campo que não esteja presente nesta 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 é consistência forte. consistency_selector pode ser apenas um dos seguintes:
transaction

bytes

Lê o documento em uma transação.

read_time

Timestamp

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

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

ListCollectionIdsRequest

A solicitação de Firestore.ListCollectionIds .

Campos
parent

string

Obrigatório. O documento pai. No 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. Deve ser um valor de ListCollectionIdsResponse .

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

Timestamp

Lê documentos como eles estavam no momento determinado.

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

ListCollectionIdsResponse

A resposta de Firestore.ListCollectionIds .

Campos
collection_ids[]

string

Os IDs da coleção.

next_page_token

string

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

ListaDocumentsRequest

A solicitação para Firestore.ListDocuments .

Campos
parent

string

Obrigatório. O nome do recurso pai. No 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á os 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 anterior ListDocuments .

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

order_by

string

Opcional. A ordenação facultativa dos documentos a devolver.

Por exemplo: priority desc, __name__ desc .

Isso reflete o ORDER BY usado nas consultas do Firestore, mas em uma representação de string. Quando ausentes, os documentos são ordenados com base em __name__ ASC .

mask

DocumentMask

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

Caso um documento possua um campo que não esteja presente nesta máscara, esse campo não será retornado na resposta.

show_missing

bool

Se a lista mostrar documentos faltantes.

Um documento está faltando 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 é consistência forte. consistency_selector pode ser apenas um dos seguintes:
transaction

bytes

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

read_time

Timestamp

Execute a leitura no horário fornecido.

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

ListaDocumentosResposta

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 este campo for omitido, não haverá páginas subsequentes.

OuvirSolicitação

Uma solicitação para Firestore.Listen

Campos
database

string

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

labels

map<string, string>

Os rótulos associados a esta mudança de destino.

Campo de união target_change . O destino suportado muda. target_change pode ser apenas um dos seguintes:
add_target

Target

Um alvo para adicionar a este fluxo.

remove_target

int32

O ID de um destino a ser removido deste fluxo.

OuvirResposta

A resposta para Firestore.Listen .

Campos
Campo de união response_type . As respostas apoiadas. response_type pode ser apenas um dos seguintes:
target_change

TargetChange

Os alvos mudaram.

document_change

DocumentChange

Um Document foi alterado.

document_delete

DocumentDelete

Um Document foi excluído.

document_remove

DocumentRemove

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

filter

ExistenceFilter

Um filtro a ser aplicado ao conjunto de documentos retornados anteriormente para um determinado destino.

Retornado quando os documentos podem ter sido removidos de um determinado destino, mas os documentos exatos são desconhecidos.

Valor do mapa

Um valor de mapa.

Campos
fields

map<string, Value >

Os campos do mapa.

As chaves do mapa representam nomes de campos. Os nomes dos campos que correspondem à expressão regular __.*__ são reservados. Nomes de campos reservados são proibidos, exceto em determinados contextos documentados. As chaves do mapa, representadas como UTF-8, não devem 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. No formato: projects/{project_id}/databases/{database_id}/documents . Nomes de recursos de documentos não são suportados; apenas nomes de recursos de banco de dados podem ser especificados.

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 deve ser positivo. O número real de partições retornadas pode ser menor.

Por exemplo, isso pode ser definido como um a menos que o número de consultas paralelas a serem executadas ou, na execução de um trabalho de pipeline de dados, um a menos que o número de trabalhadores 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 obter um conjunto adicional de resultados. Não há garantias de ordenação entre conjuntos de resultados. Assim, o uso de vários conjuntos de resultados exigirá a fusão dos 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 obter um conjunto de resultados completo ordenado em relação aos resultados da consulta fornecida ao 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é 8 partições e um next_page_token se existirem mais resultados. Uma segunda chamada para PartitionQuery retornará até 2 partições, para completar o total de 10 especificadas em partition_count .

Campo de união query_type . A consulta a particionar. query_type pode ser apenas um dos seguintes:
structured_query

StructuredQuery

Uma consulta estruturada. A consulta deve especificar a coleção com todos os descendentes e ser ordenada por nome crescente. Outros filtros, ordenar por, limites, deslocamentos e cursores de início/fim não são suportados.

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

Timestamp

Lê documentos como eles estavam no momento determinado.

Deve ser um carimbo de data/hora com precisão de microssegundos da última hora ou, se a recuperação pontual estiver ativada, também pode ser um carimbo de hora de um minuto inteiro dos últimos 7 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 devem ser feitas com a mesma consulta fornecida para esta 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, start_at A, end_at B
  • consulta, start_at B

Um resultado vazio pode indicar que a consulta tem poucos resultados para ser particionada ou que a consulta ainda não tem suporte para 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 estiver em branco, não há mais resultados.

Condição prévia

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

Campos
Campo de união condition_type . O tipo de pré-condição. condition_type pode ser apenas um dos seguintes:
exists

bool

Quando definido como true , o documento de destino deverá existir. Quando definido como false , o documento de destino não deve existir.

update_time

Timestamp

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

Solicitação de reversão

A solicitação para Firestore.Rollback .

Campos
database

string

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

transaction

bytes

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

ExecutarAggregationQueryRequest

A solicitação para Firestore.RunAggregationQuery .

Campos
parent

string

Obrigatório. O nome do recurso pai. No 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 um dos seguintes:
structured_aggregation_query

StructuredAggregationQuery

Uma consulta de agregação.

Campo de união consistency_selector . O modo de consistência da consulta tem como padrão consistência forte. consistency_selector pode ser apenas um dos seguintes:
transaction

bytes

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

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

new_transaction

TransactionOptions

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

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

read_time

Timestamp

Executa a consulta no carimbo de data/hora fornecido.

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

ExecutarAggregationQueryResponse

A resposta para Firestore.RunAggregationQuery .

Campos
result

AggregationResult

Um único resultado de agregação.

Não presente ao relatar progresso parcial.

transaction

bytes

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

Presente apenas na primeira resposta quando a solicitação solicitou o início de uma nova transação.

read_time

Timestamp

A hora em que o resultado agregado foi calculado. Isto está sempre aumentando monotonicamente; neste caso, é garantido que o AggregationResult anterior no fluxo de resultados não mudou entre seu read_time e este.

Se a consulta não retornar nenhum resultado, será enviada uma resposta com read_time e nenhum result , e isso representa o horário em que a consulta foi executada.

ExecutarQueryRequest

A solicitação para Firestore.RunQuery .

Campos
parent

string

Obrigatório. O nome do recurso pai. No 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 um dos seguintes:
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 é consistência forte. consistency_selector pode ser apenas um dos seguintes:
transaction

bytes

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

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

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

read_time

Timestamp

Lê documentos como eles estavam no momento determinado.

Deve ser um carimbo de data/hora com precisão de microssegundos da última hora ou, se a recuperação pontual estiver ativada, também pode ser um carimbo de hora de um minuto inteiro dos últimos 7 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 somente se RunQueryRequest.new_transaction tiver sido definido na solicitação. Se definido, nenhum outro campo será definido nesta 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. Isto pode estar aumentando monotonicamente; neste caso, é garantido que os documentos anteriores no fluxo de resultados não foram alterados entre seu read_time e este.

Se a consulta não retornar nenhum resultado, será enviada uma resposta com read_time e nenhum document , e isso representa o horário 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 resposta atual.

Campo de união continuation_selector . O modo de continuação da consulta. Se presente, indica que o fluxo de resposta da consulta atual foi concluído. Isso pode ser definido com ou sem um document presente, mas, quando definido, não há mais resultados retornados. continuation_selector pode ser apenas um dos seguintes:
done

bool

Se presente, o Firestore terminou completamente a solicitação e não serão devolvidos mais documentos.

Consulta de agregação estruturada

Firestore Query para executar uma agregação sobre um StructuredQuery .

Campos
aggregations[]

Aggregation

Opcional. Série de agregações para aplicar sobre os resultados do structured_query .

Requer:

  • Um mínimo de um e no máximo de cinco agregações por consulta.
Union Field query_type . A consulta base para se agregar. query_type pode ser apenas um dos seguintes:
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 para armazenar o resultado da agregação.

Se não for fornecido, o Firestore escolherá um nome padrão seguindo o formato field_<incremental_id++> . Por 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 (
  ...
);

torna-se:

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:

operator de campo da União. O tipo de agregação a ser executada, necessária. operator pode ser apenas um dos seguintes:
count

Count

Agregador de contagem.

sum

Sum

Agregador da soma.

avg

Avg

Agregador médio.

Média

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 , retorne NaN . O Infinity Math segue os padrões IEEE-754.

  • Se o conjunto de valor agregado estiver vazio, retornará NULL .

  • Sempre retorna o resultado como um duplo.

Campos
field

FieldReference

O campo para agregar.

Contar

Contagem de documentos que correspondem à consulta.

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

Campos
up_to

Int64Value

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

Isso fornece uma maneira de definir um limite superior no número de documentos para digitalizar, limitar a latência e o custo.

Não especificado é interpretado como nenhum vinculado.

Exemplo de alto nível:

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

Requer:

  • Deve ser maior que zero quando presente.

Soma

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 , retorne NaN . O Infinity Math segue os padrões IEEE-754.

  • Se o conjunto de valor agregado estiver vazio, retornará 0.

  • Retorna um número inteiro de 64 bits se todos os números agregados forem números inteiros e o resultado da soma não transbordar. Caso contrário, o resultado é retornado como um duplo. Observe que, mesmo que todos os valores agregados sejam inteiros, o resultado será retornado como um dobro se não puder se encaixar em um número inteiro assinado de 64 bits. Quando isso ocorre, o valor retornado perderá precisão.

  • Quando ocorre o fluxo, a agregação de ponto flutuante é não determinístico. Isso significa que executar a mesma consulta repetidamente, sem alterações nos valores subjacentes, pode produzir resultados ligeiramente diferentes a cada vez. Nesses casos, os valores devem ser armazenados como números inteiros em números de ponto flutuante.

Campos
field

FieldReference

O campo para agregar.

Consulta Estruturada

Uma consulta de Firestore.

Campos
select

Projection

Sub-definição opcional dos campos para retornar.

Isso atua como uma DocumentMask sobre os documentos retornados de uma consulta. Quando não está definido, pressupõe que o chamador deseja que todos os campos sejam retornados.

from[]

CollectionSelector

As coleções para consultar.

where

Filter

O filtro a ser aplicado.

order_by[]

Order

O pedido para se aplicar aos resultados da consulta.

A Firestore permite que os chamadores forneçam uma ordem completa, uma ordem parcial ou nenhum pedido. Em todos os casos, a Firestore garante uma ordem estável através das seguintes regras:

  • O order_by é obrigado a referenciar todos os campos usados ​​com um filtro de desigualdade.
  • Todos os campos que devem 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 a última ordem especificada ou 'ascendente' se nenhum pedido foi especificado. Por exemplo:

  • ORDER BY a torna -se 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 torna -se WHERE __name__ > ... AND a > 1 ORDER BY a ASC, __name__ ASC
start_at

Cursor

Um prefixo potencial de uma posição no conjunto de resultados para iniciar a consulta em.

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

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

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

Os cursores podem fazer referência à ordem completa ou a um prefixo do local, embora não possa referenciar mais campos do que o que está na ORDER BY .

Continuando o exemplo acima, anexar os seguintes cursores de início terá um impacto variável:

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

Ao contrário OFFSET , o que requer a digitalização nos primeiros n resultados a pular, um cursor de partida 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 será digitalizada a partir desta posição para encontrar o próximo documento.

Requer:

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

Cursor

Um prefixo potencial de uma posição no resultado definido para encerrar a consulta em.

Isso é semelhante ao START_AT , mas com ele controlando a posição final e não a posição inicial.

Requer:

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

int32

O número de documentos para pular antes de retornar o primeiro resultado.

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

Requer:

  • O valor deve 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 deve ser maior ou igual a zero, se especificado.

Coleção

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

Campos
collection_id

string

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

all_descendants

bool

Quando falsa, seleciona apenas coleções que são filhos imediatos dos parent especificados no RunQueryRequest contendo. Quando é verdade, seleciona todas as coleções descendentes.

Filtro Composto

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

Campos
op

Operator

O operador para combinar vários filtros.

filters[]

Filter

A lista de filtros para combinar.

Requer:

  • Pelo menos um filtro está presente.

Operador

Um operador de filtro composto.

Enums
OPERATOR_UNSPECIFIED Não especificado. Este valor não deve ser usado.
AND Os documentos são necessários para satisfazer todos os filtros combinados.
OR Os documentos são necessários para satisfazer pelo menos um dos filtros combinados.

Direção

Uma direção de classificação.

Enums
DIRECTION_UNSPECIFIED Não especificado.
ASCENDING Ascendente.
DESCENDING Descendente.

Fieldfilter

Um filtro em um campo específico.

Campos
field

FieldReference

O campo para filtrar.

op

Operator

O operador para filtrar.

value

Value

O valor para comparar.

Operador

Um operador de filtro de campo.

Enums
OPERATOR_UNSPECIFIED Não especificado. Este valor não deve ser usado.
LESS_THAN

O field especificado é menor que o value fornecido.

Requer:

  • Esse field vem primeiro em order_by .
LESS_THAN_OR_EQUAL

O field especificado é menor ou igual ao value fornecido.

Requer:

  • Esse field vem primeiro em order_by .
GREATER_THAN

O field dado é maior que o value fornecido.

Requer:

  • Esse field vem primeiro em order_by .
GREATER_THAN_OR_EQUAL

O field dado é maior ou igual ao value fornecido.

Requer:

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

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

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 dado é uma matriz que contém o value fornecido.
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.
  • NO NOT_IN FILTROS NA MESMA CONSULTA.
ARRAY_CONTAINS_ANY

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

Requer:

  • Esse value é um ArrayValue não vazio, sujeito a limites de disjunção.
  • Nenhum outro ARRAY_CONTAINS_ANY filtros dentro da mesma disjunção.
  • NO NOT_IN FILTROS NA MESMA CONSULTA.
NOT_IN

O valor do field não está na matriz dada.

Requer:

  • Esse value é um ArrayValue não vazio com no máximo 10 valores.
  • Nenhum outro 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 .

Referência de campo

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

Campos
field_path

string

Uma referência a um campo em um documento.

Requer:

Filtro

Um filtro.

Campos
filter_type de campo da união_type. O tipo de filtro. filter_type pode ser apenas um dos seguintes:
composite_filter

CompositeFilter

Um filtro composto.

field_filter

FieldFilter

Um filtro em um campo de documento.

unary_filter

UnaryFilter

Um filtro que leva exatamente um argumento.

Ordem

Um pedido em um campo.

Campos
field

FieldReference

O campo para encomendar.

direction

Direction

A direção para encomendar por. Padrões para ASCENDING .

Projeção

A projeção dos campos do documento para retornar.

Campos
fields[]

FieldReference

Os campos para retornar.

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

Unaryfilter

Um filtro com um único operando.

Campos
op

Operator

O operador unário para aplicar.

Union Field operand_type . O argumento para o filtro. operand_type pode ser apenas um dos seguintes:
field

FieldReference

O campo ao qual aplicar o operador.

Operador

Um operador unário.

Enums
OPERATOR_UNSPECIFIED Não especificado. Este valor não deve ser usado.
IS_NAN O field dado é igual a NaN .
IS_NULL O field dado é igual a NULL .
IS_NOT_NAN

O field dado 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 dado não é igual a NULL .

Requer:

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

Alvo

Uma especificação de um conjunto de documentos para ouvir.

Campos
target_id

int32

O ID de destino que identifica o alvo no fluxo. Deve ser um número positivo e diferente de zero.

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

Observe que, se o cliente enviar várias solicitações AddTarget sem um ID, a ordem dos IDs retornou no TargetChage.target_ids será indefinida. Portanto, os clientes devem fornecer um ID de destino em vez de confiar no servidor para atribuir um.

Se target_id não for diferente de zero, não deve haver um alvo ativo existente nesse fluxo com o mesmo ID.

once

bool

Se o alvo for removido quando estiver atual e consistente.

expected_count

Int32Value

O número de documentos que corresponderam pela última vez à consulta no token de currículo ou no tempo de leitura.

Este valor é relevante apenas quando um resume_type é fornecido. Este valor está presente e maior que zero sinais de que o cliente deseja que ExistenceFilter.unchanged_names seja incluído na resposta.

Campo da União target_type . O tipo de alvo a ser ouvido. target_type pode ser apenas um dos seguintes:
query

QueryTarget

Um alvo especificado por uma consulta.

documents

DocumentsTarget

Um alvo especificado por um conjunto de nomes de documentos.

Campo da União resume_type . Quando começar a ouvir.

Se especificado, apenas os documentos correspondentes que foram atualizados após o retorno do resume_token ou read_time serão devolvidos. Caso contrário, todos os documentos correspondentes são retornados antes de quaisquer alterações subsequentes. resume_type pode ser apenas um dos seguintes:

resume_token

bytes

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

O uso de um token de currículo com um alvo diferente não é suportado e pode falhar.

read_time

Timestamp

Comece a ouvir após um read_time específico.

O cliente deve conhecer o estado dos documentos correspondentes neste momento.

DocumentStarget

Um alvo especificado por um conjunto de nomes de documentos.

Campos
documents[]

string

Os nomes dos documentos para recuperar. No formato: projects/{project_id}/databases/{database_id}/documents/{document_path} . A solicitação falhará se algum documento não for um recurso filho do database especificado. Os nomes duplicados serão eliminados.

Querytarget

Um alvo especificado por uma consulta.

Campos
parent

string

O nome do recurso pai. No 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

Union Field query_type . A consulta a ser executada. query_type pode ser apenas um dos seguintes:
structured_query

StructuredQuery

Uma consulta estruturada.

TargetChange

Os alvos que estão sendo observados mudaram.

Campos
target_change_type

TargetChangeType

O tipo de mudança que ocorreu.

target_ids[]

int32

Os IDs de destino dos alvos que mudaram.

Se vazio, a alteração se aplica a todos os objetivos.

A ordem dos IDs de destino não está 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 fluxo para os especificados target_ids ou todos os alvos se target_ids estiver vazio.

Não definido em todas as mudanças de destino.

read_time

Timestamp

O consistente read_time para o target_ids fornecido (omitido quando os Target_ids não estão em um instantâneo consistente).

É garantido que o fluxo envie um read_time com target_ids vazio sempre que todo o fluxo atingir um novo instantâneo consistente. Adicionar, as mensagens atuais e de redefinição são garantidas (eventualmente) resultam em um novo instantâneo consistente (enquanto o NO_CHANGE e REMOVEM as mensagens não são).

Para um determinado fluxo, read_time é garantido para aumentar monotonicamente.

TargetCangeType

O tipo de mudança.

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

Os alvos refletem todas as alterações cometidas antes que os alvos fossem adicionados ao fluxo.

Isso será enviado após ou com um read_time maior ou igual ao tempo em que os alvos foram adicionados.

Os ouvintes podem esperar por essa alteração se a semântica de leitura após gravação for desejada.

RESET

As metas foram redefinidas e um novo estado inicial para os alvos será retornado nas alterações subsequentes.

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

Opções de transação

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

Campos
mode de campo da união. O modo da transação. mode pode ser apenas um dos seguintes:
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.

Somente leitura

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

Campos
UNION CAMPO consistency_selector . O modo de consistência para esta transação. Se não estiver definido, os padrões de forte consistência. consistency_selector pode ser apenas um dos seguintes:
read_time

Timestamp

Lê documentos no horário determinado.

Este deve ser um registro de data e hora de precisão de microssegundos na última hora, ou se a recuperação do ponto de vista estiver ativada, também poderá ser um timestamp de minuto inteiro nos últimos 7 dias.

Ler escrever

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

O Firestore não permite solicitações de autenticação de terceiros para criar leitura-escrita. transações.

Campos
retry_transaction

bytes

Uma transação opcional para tentar novamente.

UPDATEDOCUMENTREQUEST

O pedido de Firestore.UpdateDocument .

Campos
document

Document

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

update_mask

DocumentMask

Os campos para atualizar. Nenhum dos caminhos de campo na máscara pode conter um nome reservado.

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

mask

DocumentMask

Os campos para retornar. Se não estiver definido, retorna todos os campos.

Se o documento tiver um campo que não esteja presente nesta máscara, esse campo não será retornado na resposta.

current_document

Precondition

Uma pré -condição 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 suportados.

Campos
Campo da União value_type . Deve ter um conjunto de valor. value_type pode ser apenas um dos seguintes:
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.

Preciso apenas para microssegundos. Quando armazenado, qualquer precisão adicional é arredondada.

string_value

string

Um valor de sequência.

A string, representada como UTF -8, não deve exceder 1 MIB - 89 bytes. Somente os primeiros 1.500 bytes da representação UTF-8 são considerados por consultas.

bytes_value

bytes

Um valor de bytes.

Não deve exceder 1 MIB - 89 bytes. Apenas os primeiros 1.500 bytes são considerados por 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 de ponto geográfico representando 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.

Escrever

Uma gravação em um documento.

Campos
update_mask

DocumentMask

Os campos a serem atualizados nesta gravação.

Este campo pode ser definido apenas quando a operação é update . Se a máscara não estiver definida para uma update e o documento existir, quaisquer dados existentes serão substituídos. Se a máscara estiver definida e o documento no servidor possui campos não cobertos pela máscara, eles permanecerão inalterados. Os campos referenciados na máscara, mas não presentes no documento de entrada, são excluídos do documento no servidor. Os caminhos de campo nesta máscara não devem conter um nome de campo reservado.

update_transforms[]

FieldTransform

As transformações para se apresentar após a atualização.

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

current_document

Precondition

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

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

operation de campo da união. A operação para executar. operation pode ser apenas um dos seguintes:
update

Document

Um documento para escrever.

delete

string

Um nome de documento para excluir. No formato: projects/{project_id}/databases/{database_id}/documents/{document_path} .

transform

DocumentTransform

Aplica uma transformação em um documento.

Solicitação de gravação

O pedido de Firestore.Write .

A primeira solicitação cria um fluxo ou retoma um existente de um token.

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

Ao retomar um fluxo, o servidor transmite primeiro respostas depois do token fornecido, depois uma resposta contendo apenas um token atualizado, para usar na próxima solicitação.

Campos
database

string

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

stream_id

string

O ID do fluxo de gravação para retomar. Isso só pode ser definido na primeira mensagem. Quando deixado vazio, um novo fluxo de gravação será criado.

writes[]

Write

As gravações para aplicar.

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

stream_token

bytes

Um token de fluxo que foi enviado anteriormente pelo servidor.

O cliente deve definir esse campo para o token da resposta mais recente do WriteResponse que recebeu. Isso reconhece que o cliente recebeu respostas até esse token. Depois de enviar este token, os tokens anteriores podem não ser mais usados.

O servidor pode fechar o fluxo se houver muitas respostas não reconhecidas.

Deixe este campo sem definir ao criar um novo fluxo. Para retomar um fluxo em um ponto específico, defina este campo e o campo stream_id .

Deixe este campo sem definir ao criar um novo fluxo.

labels

map<string, string>

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

WriterSponse

A resposta para Firestore.Write .

Campos
stream_id

string

O ID do fluxo. Definido apenas na primeira mensagem, quando um novo fluxo foi criado.

stream_token

bytes

Um token que representa a posição dessa resposta no fluxo. Isso pode ser usado por um cliente para retomar o fluxo neste momento.

Este campo está sempre definido.

write_results[]

WriteResult

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

Este i-és de gravação corresponde à i-ésima gravação na solicitação.

commit_time

Timestamp

O momento em que o commit ocorreu. Qualquer leitura com um read_time IGAL ou MAIS Garantido para ver os efeitos da gravação.

GravarResultado

O resultado da aplicação de uma gravação.

Campos
update_time

Timestamp

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

Se a gravação não alterou o documento, este será o Update_time anterior.

transform_results[]

Value

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