获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。了解详情

Tipos de dados compatíveis

Esta página descreve os tipos de dados compatíveis com o Cloud Firestore.

Tipos de dados

A tabela a seguir lista os tipos de dados compatíveis com o Cloud Firestore. Ele também descreve a ordem de classificação usada ao comparar valores do mesmo tipo:

Tipo de dados Ordem de classificação Notas
Variedade 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, as matrizes são ordenadas com base em seus valores de elemento.

Ao comparar duas matrizes, os primeiros elementos de cada matriz são comparados. Se os primeiros elementos são iguais, então os segundos elementos são comparados e assim por diante até que uma diferença seja encontrada. Se um array ficar sem elementos para comparar, mas for igual até aquele ponto, o array mais curto será ordenado antes do array mais longo.

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

boleano false < true
Bytes Ordem de bytes Até 1.048.487 bytes (1 MiB - 89 bytes). Apenas os primeiros 1.500 bytes são considerados pelas consultas.
Data e hora Cronológico Quando armazenado no Cloud Firestore, com precisão de apenas microssegundos; qualquer precisão adicional é arredondada para baixo.
Número de ponto flutuante Numérico Precisão dupla de 64 bits, IEEE 754.
Ponto geográfico Por latitude, então longitude No momento, não recomendamos o uso desse tipo de dados devido a limitações de consulta. Geralmente é melhor armazenar latitude e longitude como campos numéricos separados. Se seu aplicativo precisar de geoconsultas simples baseadas em distância, consulte Consultas geográficas
inteiro Numérico 64 bits, assinado
Mapa Por chaves, depois por valor

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

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

Os campos de mapa são classificados por chave e comparados por pares chave-valor, primeiro comparando as chaves e depois os valores. Se os primeiros pares de valores-chave forem iguais, os próximos pares de valores-chave serão comparados e assim por diante. Se dois mapas começarem com os mesmos pares de valores-chave, o comprimento do mapa será considerado. Por exemplo, os seguintes mapas 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 Nenhum
Referência Por elementos de caminho (coleção, ID do documento, coleção, ID do documento...) Por exemplo, projects/[PROJECT_ID]/databases/[DATABASE_ID]/documents/[DOCUMENT_PATH] .
Cadeia de texto Ordem de bytes codificada em UTF-8 Até 1.048.487 bytes (1 MiB - 89 bytes). Apenas os primeiros 1.500 bytes da representação UTF-8 são considerados pelas consultas.

Ordem de tipo de valor

Quando uma consulta envolve um campo com valores de tipos mistos, o Cloud Firestore usa uma ordenação determinística com base nas representações internas. A lista a seguir mostra a ordem:

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