Tipos de dados compatíveis

Veja nesta página os tipos de dados compatíveis com o Cloud Firestore.

Tipos de dados

A tabela a seguir lista os tipos de dados com suporte no Cloud Firestore. Também descreve a ordem de classificação usada ao comparar valores do mesmo tipo:

Tipo de dados Ordem de classificação Observações
Matriz Por valores de elemento

Uma matriz não pode conter outro valor de matriz como um de seus elementos.

Dentro de uma matriz, os elementos mantêm a posição atribuída a eles. Ao classificar duas ou mais matrizes, elas são ordenadas com base nos seus valores de elemento.

Ao comparar duas matrizes, os primeiros elementos de cada uma delas são comparados. Se os primeiros elementos forem iguais, os segundos elementos serão comparados, e assim por diante, até que uma diferença seja encontrada. Se uma matriz ficar sem elementos para comparar, mas for igual até esse ponto, a matriz mais curta será ordenada antes da matriz mais longa.

Por exemplo, [1, 2, 3] < [1, 2, 3, 1] < [2]. A matriz [2] tem o maior valor no primeiro elemento. A matriz [1, 2, 3] tem elementos iguais aos primeiros três elementos de [1, 2, 3, 1], mas é menor em comprimento.

Booleano false < true
Bytes Ordem de bytes Até 1.048.487 bytes (1 MiB — 89 bytes). Somente os primeiros 1.500 bytes são considerados nas consultas.
Data e hora Cronológica Quando armazenados no Cloud Firestore, têm precisão somente para microssegundos. Qualquer precisão adicional é arredondada para baixo.
Número de ponto flutuante Numérica Precisão dupla de 64 bits, IEEE 754.
Ponto geográfico Por latitude e depois longitude
Número inteiro Numérica 64 bits, assinado.
Mapa Por chaves e, em seguida, por valor

Representa um objeto incorporado em um documento. Quando indexado, é possível consultar subcampos. Se você excluir esse valor da indexação, todos os subcampos também serão excluídos.

A ordenação das chaves é sempre classificada. Por exemplo, se você escrever {c: "foo", a: "bar", b: "qux"}, o mapa será classificado por chave e salvo como {a: "foo", b: "bar", c: "qux"}.

Os campos do mapa são classificados por chave e comparados por pares de chave-valor, primeiro comparando as chaves e, em seguida, os valores. Se os primeiros pares de chave-valor forem iguais, os próximos pares serão comparados e assim por diante. Se dois mapas começarem com os mesmos pares de chave-valor, o tamanho do mapa será considerado. Por exemplo, os mapas a seguir estão em ordem crescente:

{a: "aaa", b: "baz"}
{a: "foo", b: "bar"}
{a: "foo", b: "bar", c: "qux"}
{a: "foo", b: "baz"}
{b: "aaa", c: "baz"}
{c: "aaa"}

Nulo Nenhuma
Referência Por elementos do caminho (coleção, código do documento, coleção, código do documento…) Por exemplo: projects/[PROJECT_ID]/databases/[DATABASE_ID]/documents/[DOCUMENT_PATH].
String de texto Ordem de bytes codificada em UTF-8 Até 1.048.487 bytes (1 MiB — 89 bytes). Somente os primeiros 1.500 bytes da representação UTF-8 são considerados nas consultas.

Ordem de tipo de valor

Quando uma consulta envolve um campo com valores de tipos mistos, o Cloud Firestore usa uma ordem determinista baseada nas representações internas. A lista a seguir mostra a ordem:

  1. Valores nulos
  2. Valores booleanos
  3. Valores de inteiros e ponto flutuante, classificados em ordem numérica
  4. Valores de data
  5. Valores de string de texto
  6. Valores de byte
  7. Referências do Cloud Firestore
  8. Valores de ponto geográfico
  9. Valores de matriz
  10. Valores de mapa

Enviar comentários sobre…

Precisa de ajuda? Acesse nossa página de suporte.