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. 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 que lhes foi atribuída. Ao classificar duas ou mais matrizes, as matrizes são ordenadas com base nos valores de seus elementos. Ao comparar duas matrizes, os primeiros elementos de cada matriz 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, |
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, depois longitude | No momento, não recomendamos o uso desse tipo de dados devido a limitações de consulta. Geralmente é melhor armazenar a latitude e a longitude como campos numéricos separados. Se seu aplicativo precisar de consultas geográficas 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 ordem das chaves é sempre classificada. Por exemplo, se você escrever Os campos do mapa são classificados por chave e comparados por pares de valores-chave, comparando primeiro 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: |
NaN | Nenhum | - |
Nulo | Nenhum | - |
Referência | Por elementos do caminho (coleção, ID do documento, coleção, ID do documento...) | Por exemplo, projects/[PROJECT_ID]/databases/[DATABASE_ID]/documents/[DOCUMENT_PATH] . |
Sequência de texto | Ordem de bytes codificados 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. |
Ordenação de tipo de valor
Quando uma consulta envolve um campo com valores de tipos mistos, o Cloud Firestore usa uma ordenação determinística baseada nas representações internas. A lista a seguir mostra a ordem:
- Valores nulos
- Valores booleanos
- Valores NaN
- Valores inteiros e de ponto flutuante, classificados em ordem numérica
- Valores de data
- Valores de string de texto
- Valores de bytes
- Referências do Cloud Firestore
- Valores de pontos geográficos
- Valores de matriz
- Valores do mapa