Types de données acceptés

Cette page décrit les types de données compatibles avec Firestore.

Types de données

Le tableau suivant répertorie les types de données compatibles avec Firestore. Il décrit également l'ordre de tri utilisé pour la comparaison de valeurs du même type:

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

Un tableau ne peut pas contenir une autre valeur de tableau comme élément.

Dans un tableau, les éléments conservent la position qui leur est attribuée. Lorsque vous triez deux tableaux ou plus, les tableaux sont classés en fonction de leurs valeurs d'élément.

Lorsque vous comparez deux tableaux, les premiers éléments de chaque tableau sont comparés. Si les premiers éléments sont égaux, les deuxièmes éléments sont comparés, et ainsi de suite jusqu'à ce qu'une différence soit détectée. Si un tableau ne présente plus d'éléments à comparer, mais qu'il est égal à ce point, le tableau le plus court est trié avant le tableau le plus long.

Exemple : [1, 2, 3] < [1, 2, 3, 1] < [2]. Le tableau [2] a la plus grande valeur pour le premier élément. Le tableau [1, 2, 3] comporte des éléments équivalents aux trois premiers éléments de [1, 2, 3, 1], mais est plus court.

Valeur booléenne false &true ; :
Octets Ordre des octets Jusqu'à 1 048 487 octets (1 Mio – 89 octets). Seuls les 1 500 premiers octets sont pris en compte par les requêtes.
Date et heure Chronologique En cas de stockage dans Firestore, limitez la précision aux microsecondes. Toute précision supplémentaire est arrondie au chiffre inférieur.
Nombre à virgule flottante Chiffre Double précision 64 bits, IEEE 754.
Point géographique En fonction de la latitude, puis de la longitude Pour le moment, nous vous déconseillons d'utiliser ce type de données en raison des limites associées aux requêtes. Il est généralement préférable de stocker les coordonnées de latitude et de longitude sous la forme de champs numériques distincts. Si votre application nécessite des requêtes géographiques simples basées sur la distance, consultez la section Requêtes géographiques.
Entier Chiffre 64 bits, signé
Carte Par clés, puis par valeur

Représente un objet intégré dans un document. Une fois la requête indexée, vous pouvez interroger les sous-champs. Si vous excluez cette valeur de l'indexation, tous les sous-champs le sont également.

Le tri 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 mappage 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 valeur/clé, la longueur de la carte est prise en compte. Par exemple, les cartes suivantes sont dans l'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"}

Vide Aucune sélection :
Référence Par éléments de chemin d'accès (collection, ID de document, collection, ID de document...) Exemple : projects/[PROJECT_ID]/databases/[DATABASE_ID]/documents/[DOCUMENT_PATH].
Chaîne de texte Ordre des octets encodés en UTF-8 Jusqu'à 1 048 487 octets (1 Mio – 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, Firestore utilise un ordre déterministe basé sur les représentations internes. La liste suivante montre l'ordre:

  1. Valeurs Null
  2. Valeurs booléennes
  3. Entiers et valeurs à virgule flottante, triés par ordre numérique
  4. Valeurs de date
  5. Valeurs de chaîne de texte
  6. Valeurs d'octets
  7. Références Firestore
  8. Barèmes géographiques
  9. Valeurs de tableau
  10. Mapper les valeurs