Tipos de datos admitidos

Esta página describe los tipos de datos que admite Cloud Firestore.

Tipos de datos

La siguiente tabla enumera los tipos de datos admitidos por Cloud Firestore. También describe el orden de clasificación utilizado al comparar valores del mismo tipo:

Tipo de datos Orden de clasificación Notas
Formación Por valores de elementos

Una matriz no puede contener otro valor de matriz como uno de sus elementos.

Dentro de una matriz, los elementos mantienen la posición que se les ha asignado. Al ordenar dos o más matrices, las matrices se ordenan según los valores de sus elementos.

Al comparar dos matrices, se comparan los primeros elementos de cada matriz. Si los primeros elementos son iguales, entonces se comparan los segundos elementos y así sucesivamente hasta encontrar una diferencia. Si una matriz se queda sin elementos para comparar pero es igual hasta ese punto, entonces la matriz más corta se ordena antes que la matriz más larga.

Por ejemplo, [1, 2, 3] < [1, 2, 3, 1] < [2] . La matriz [2] tiene el mayor valor del primer elemento. La matriz [1, 2, 3] tiene elementos iguales a los primeros tres elementos de [1, 2, 3, 1] pero tiene una longitud más corta.

Booleano false < true
bytes Orden de bytes Hasta 1.048.487 bytes (1 MiB - 89 bytes). Las consultas sólo consideran los primeros 1.500 bytes.
Fecha y hora Cronológico Cuando se almacena en Cloud Firestore, tiene una precisión de solo microsegundos; cualquier precisión adicional se redondea hacia abajo.
Número de punto flotante Numérico Doble precisión de 64 bits, IEEE 754 .
punto geográfico Por latitud, luego longitud En este momento no recomendamos utilizar este tipo de datos debido a limitaciones de consulta. Generalmente es mejor almacenar la latitud y la longitud como campos numéricos separados. Si su aplicación necesita consultas geográficas simples basadas en distancias, consulte Consultas geográficas
Entero Numérico 64 bits, firmado
Mapa Por claves, luego por valor

Representa un objeto incrustado dentro de un documento. Cuando está indexado, puede realizar consultas en subcampos. Si excluye este valor de la indexación, todos los subcampos también se excluyen de la indexación.

El orden de las claves siempre está ordenado. Por ejemplo, si escribe {c: "foo", a: "bar", b: "qux"} el mapa se ordena por clave y se guarda como {a: "bar", b: "qux", c: "foo"} .

Los campos del mapa se ordenan por clave y se comparan por pares clave-valor, comparando primero las claves y luego los valores. Si los primeros pares clave-valor son iguales, se comparan los siguientes pares clave-valor, y así sucesivamente. Si dos mapas comienzan con los mismos pares clave-valor, entonces se considera la longitud del mapa. Por ejemplo, los siguientes mapas están en orden ascendente:

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

Yaya Ninguno
Nulo Ninguno
Referencia Por elementos de ruta (colección, ID de documento, colección, ID de documento...) Por ejemplo, projects/[PROJECT_ID]/databases/[DATABASE_ID]/documents/[DOCUMENT_PATH] .
Cadena de texto Orden de bytes codificados en UTF-8 Hasta 1.048.487 bytes (1 MiB - 89 bytes). Las consultas solo consideran los primeros 1500 bytes de la representación UTF-8.

Orden de tipo de valor

Cuando una consulta involucra un campo con valores de tipos mixtos, Cloud Firestore usa un orden determinista basado en las representaciones internas. La siguiente lista muestra el orden:

  1. Valores nulos
  2. valores booleanos
  3. Valores NaN
  4. Valores enteros y de punto flotante, ordenados en orden numérico
  5. Valores de fecha
  6. Valores de cadena de texto
  7. Valores de bytes
  8. Referencias de Cloud Firestore
  9. Valores de puntos geográficos
  10. Valores de matriz
  11. Valores del mapa