Types de données pris en charge

Cette page décrit les types de données pris en charge par Cloud Firestore.

Types de données

Le tableau suivant répertorie les types de données pris en charge par Cloud Firestore. Il décrit également l'ordre de tri utilisé lors de la comparaison de valeurs du même type :

Type de données Ordre de tri Remarques
Tableau Par valeurs d'éléments

Un tableau ne peut pas contenir une autre valeur de tableau comme l'un de ses éléments.

Dans un tableau, les éléments conservent la position qui leur est assignée. Lors du tri de deux tableaux ou plus, les tableaux sont classés en fonction de leurs valeurs d'éléments.

Lors de la comparaison de deux tableaux, les premiers éléments de chaque tableau sont comparés. Si les premiers éléments sont égaux, alors les seconds éléments sont comparés et ainsi de suite jusqu'à trouver une différence. Si un tableau manque d’éléments à comparer mais est égal jusqu’à ce point, alors le tableau le plus court est classé avant le tableau le plus long.

Par exemple, [1, 2, 3] < [1, 2, 3, 1] < [2] . Le tableau [2] a la plus grande valeur de premier élément. Le tableau [1, 2, 3] contient des éléments égaux aux trois premiers éléments de [1, 2, 3, 1] mais est plus court.

Booléen false < true
Octets Ordre des octets Jusqu'à 1 048 487 octets (1 Mo - 89 octets). Seuls les 1 500 premiers octets sont pris en compte par les requêtes.
Date et l'heure Chronologique Lorsqu'il est stocké dans Cloud Firestore, précis uniquement en microsecondes ; toute précision supplémentaire est arrondie à l’inférieur.
Nombre à virgule flottante Numérique Double précision 64 bits, IEEE 754 .
Point géographique Par latitude, puis longitude Pour le moment, nous ne recommandons pas d'utiliser ce type de données en raison des limitations des requêtes. Il est généralement préférable de stocker la latitude et la longitude dans des champs numériques distincts. Si votre application nécessite des géorequêtes simples basées sur la distance, consultez Requêtes géographiques.
Entier Numérique 64 bits, signé
Carte Par clés, puis par valeur

Représente un objet incorporé dans un document. Une fois indexé, vous pouvez interroger les sous-champs. Si vous excluez cette valeur de l'indexation, tous les sous-champs sont également exclus de l'indexation.

L’ordre des clés est toujours trié. Par exemple, si vous écrivez {c: "foo", a: "bar", b: "qux"} la carte est triée par clé et enregistrée sous {a: "bar", b: "qux", c: "foo"} .

Les champs de carte sont triés par clé et comparés par paires clé-valeur, en comparant d'abord les clés, puis les valeurs. Si les premières paires clé-valeur sont égales, les paires clé-valeur suivantes sont comparées, et ainsi de suite. Si deux cartes commencent par les mêmes paires clé-valeur, la longueur de la carte est prise en compte. Par exemple, les cartes suivantes sont classées par ordre croissant :

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

NaN Aucun
Nul Aucun
Référence Par éléments de chemin (collection, identifiant du document, collection, identifiant du document...) Par exemple, projects/[PROJECT_ID]/databases/[DATABASE_ID]/documents/[DOCUMENT_PATH] .
Chaîne de texte Ordre des octets codés en UTF-8 Jusqu'à 1 048 487 octets (1 Mo - 89 octets). Seuls les 1 500 premiers octets de la représentation UTF-8 sont pris en compte par les requêtes.

Ordre des types de valeur

Lorsqu'une requête implique un champ avec des valeurs de types mixtes, Cloud Firestore utilise un ordre déterministe basé sur les représentations internes. La liste suivante montre l'ordre :

  1. Valeurs nulles
  2. Valeurs booléennes
  3. Valeurs NaN
  4. Valeurs entières et à virgule flottante, triées par ordre numérique
  5. Valeurs de dates
  6. Valeurs de chaîne de texte
  7. Valeurs d'octet
  8. Références Cloud Firestore
  9. Valeurs des points géographiques
  10. Valeurs du tableau
  11. Valeurs de la carte