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, |
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 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 : |
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 :
- Valeurs nulles
- Valeurs booléennes
- Valeurs NaN
- Valeurs entières et à virgule flottante, triées par ordre numérique
- Valeurs de dates
- Valeurs de chaîne de texte
- Valeurs d'octet
- Références Cloud Firestore
- Valeurs des points géographiques
- Valeurs du tableau
- Valeurs de la carte