Quotas et limites
Cette page présente les quotas et limites de requêtes concernant Firestore.
Utilisation du niveau sans frais
Firestore propose une version sans frais qui vous permet de commencer à utiliser Firestore sans frais. Les montants du niveau sans frais sont indiqués dans le tableau suivant.
Les montants du niveau sans frais sont appliqués quotidiennement et réinitialisés à minuit, heure du Pacifique.
Le niveau sans frais ne s'applique qu'à une seule base de données Firestore par projet. La première base de données créée dans un projet sans base de données de niveau sans frais bénéficiera du niveau sans frais. Si la base de données avec le niveau sans frais appliqué est supprimée, le niveau sans frais sera appliqué à la prochaine base de données créée.
Édition standard
| Niveau sans frais | Quotas |
|---|---|
| Données stockées | 1 Gio |
| Lectures de documents | 50 000 par jour |
| Écritures de documents | 20 000 par jour |
| Suppressions de documents | 20 000 par jour |
| Transfert de données sortant | 10 Gio par mois |
Édition Enterprise
| Niveau sans frais | Quotas |
|---|---|
| Données stockées | 1 Gio |
| Unités de lecture | 50 000 par jour |
| Unités de mises à jour en temps réel | 50 000 par jour |
| Unités d'écriture | 40 000 par jour |
| Transfert de données sortant | 10 Gio par mois |
Les opérations et fonctionnalités suivantes ne sont pas incluses dans l'utilisation sans frais. Vous devez activer la facturation pour utiliser les fonctionnalités suivantes :
- Suppressions gérées (TTL)
- Données PITR
- Sauvegardez les données
- Opérations de restauration
- Opérations de clonage
Limites
Les limites applicables à Firestore sont présentées dans les tableaux suivants. Sauf indication contraire, ces limites sont strictes.
Bases de données
Édition standard
| Limite | Détails |
|---|---|
| Nombre maximal de bases de données par projet |
100 Vous pouvez contacter l'assistance pour demander à augmenter cette limite. |
| Nombre maximal de bases de données CMEK (Customer-Managed Encryption Key) par projet |
0 Par défaut, le quota est défini sur 0, car cette fonctionnalité est disponible uniquement sur une liste d'autorisation. Vous pouvez demander à augmenter le quota en remplissant le formulaire de demande d'accès CMEK. |
Édition Enterprise
| Limite | Détails |
|---|---|
| Nombre maximal de bases de données par projet |
100 Vous pouvez contacter l'assistance pour demander à augmenter cette limite. |
| Nombre maximal de bases de données CMEK (Customer-Managed Encryption Key) par projet |
0 Par défaut, le quota est défini sur 0, car cette fonctionnalité est disponible uniquement sur une liste d'autorisation. Vous pouvez demander à augmenter le quota en remplissant le formulaire de demande d'accès CMEK. |
Collections, documents et champs
Édition standard
| Limite | Détails |
|---|---|
| Contraintes sur les ID de collection |
|
| Profondeur maximale des sous-collections | 100 |
| Contraintes sur les ID de document |
|
| Taille maximale d'un nom de document | 6 Kio |
| Taille maximale d'un document | 1 Mio (1 048 576 octets) |
| Contraintes sur les noms de champ |
|
| Taille maximale d'un nom de champ | 1 500 octets |
| Contraintes sur les chemins d'accès des champs |
`). Par exemple, foo.`x&y` fait référence au champ x&y imbriqué sous le champ foo. Pour créer un nom de champ avec le caractère accent grave, échappez-le avec le caractère barre oblique inverse (\). Pour plus de commodité, vous pouvez éviter les noms de champs entre guillemets en transmettant le chemin d'accès du champ sous la forme d'un objet FieldPath (par exemple, consultez FieldPath JavaScript).
|
| Taille maximale d'un chemin d'accès de champ | 1 500 octets |
| Taille maximale d'une valeur de champ | 1 Mio – 89 octets (1 048 487 octets) |
| Profondeur maximale des champs dans une carte ou un tableau | 20 Les champs de carte et de tableau ajoutent un niveau à la profondeur globale d'un objet. Par exemple, l'objet suivant a une profondeur totale de trois niveaux : |
Édition Enterprise
| Limite | Détails |
|---|---|
| Contraintes sur les ID de collection |
|
| Profondeur maximale des sous-collections | 100 |
| Contraintes sur les ID de document |
|
| Taille maximale d'un nom de document | 6 Kio |
| Taille maximale d'un document | 1 Mio (1 048 576 octets) |
| Contraintes sur les noms de champ |
|
| Taille maximale d'un nom de champ | 1 500 octets |
| Contraintes sur les chemins d'accès des champs |
`). Par exemple, foo.`x&y` fait référence au champ x&y imbriqué sous le champ foo. Pour créer un nom de champ avec le caractère accent grave, échappez-le avec le caractère barre oblique inverse (\). Pour plus de commodité, vous pouvez éviter les noms de champs entre guillemets en transmettant le chemin d'accès du champ sous la forme d'un objet FieldPath (par exemple, consultez FieldPath JavaScript).
|
| Taille maximale d'un chemin d'accès de champ | 1 500 octets |
| Taille maximale d'une valeur de champ | 1 Mio – 89 octets (1 048 487 octets) |
| Profondeur maximale des champs dans une carte ou un tableau | 20 Les champs de carte et de tableau ajoutent un niveau à la profondeur globale d'un objet. Par exemple, l'objet suivant a une profondeur totale de trois niveaux : |
Écritures et transactions
Édition standard
| Limite | Détails |
|---|---|
| Taille maximale des requêtes API | 10 Mio |
| Durée maximale d'une transaction | 270 secondes, avec un délai d'inactivité avant expiration de 60 secondes |
Nombre maximal de transformations de champ pouvant être effectuées dans un seul document via une opération Commit ou une transaction |
500 |
Édition Enterprise
| Limite | Détails |
|---|---|
| Taille maximale des requêtes API | 10 Mio |
| Durée maximale d'une transaction | 270 secondes, avec un délai d'inactivité avant expiration de 60 secondes |
Nombre maximal de transformations de champ pouvant être effectuées dans un seul document via une opération Commit ou une transaction |
500 |
Index
Édition standard
| Limite | Détails |
|---|---|
| Nombre maximal d'index composites pour une base de données |
|
| Nombre maximal de configurations à champ unique pour une base de données |
Une configuration au niveau du champ peut contenir plusieurs configurations pour le même champ. Par exemple, une exemption d'indexation à champ unique et une règle TTL sur le même champ comptent comme une seule configuration de champ pour la limite. |
|
Nombre maximal d'entrées d'index pour chaque document |
40 000 Le nombre d'entrées d'index représente la somme des entrées suivantes pour un document :
Pour savoir comment Firestore transforme un document et un ensemble d'index en entrées d'index, consultez cet exemple de nombre d'entrées d'index. |
| Nombre maximal de champs dans un index composite | 100 |
| Taille maximale d'une entrée d'index |
7,5 Kio Pour savoir comment Firestore calcule la taille des entrées d'index, consultez la page Taille des entrées d'index. |
| Somme maximale des tailles d'entrée d'index d'un document |
8 Mio La taille totale représente la somme des tailles suivantes pour un document : |
| Taille maximale d'une valeur de champ indexé |
1 500 octets Les valeurs de champ au-delà de 1 500 octets sont tronquées. Les requêtes impliquant des valeurs de champ tronquées peuvent renvoyer des résultats incohérents. |
Édition Enterprise
| Limite | Détails |
|---|---|
| Nombre maximal d'index pour une base de données |
|
|
Nombre maximal d'entrées d'index pour chaque document |
40 000 |
| Nombre maximal de champs dans un index | 100 |
| Taille maximale d'une entrée d'index |
7,5 Kio Pour savoir comment Firestore calcule la taille des entrées d'index, consultez la page Taille des entrées d'index. |
| Somme maximale des tailles d'entrée d'index d'un document |
8 Mio |
Valeur TTL (Time to Live)
Édition standard
| Limite | Détails |
|---|---|
| Nombre maximal de configurations TTL pour une base de données |
|
Édition Enterprise
| Limite | Détails |
|---|---|
| Nombre maximal de configurations à champ unique pour une base de données |
Une configuration au niveau du champ peut contenir plusieurs configurations pour le même champ. Par exemple, une exemption d'indexation à champ unique et une règle TTL sur le même champ comptent comme une seule configuration de champ pour la limite. |
Exportation/Importation
Les limites ci-dessous sont appliquées aux opérations d'importation et d'exportation gérées :
Édition standard
| Limite | Détails |
|---|---|
| Nombre maximal total de requêtes d'exportation et d'importation autorisé par minute pour un projet | 20 |
| Nombre maximal d'exportations et d'importations simultanées | 50 |
| Nombre maximal de filtres d'ID de collection autorisé pour les requêtes d'exportation et d'importation | 100 |
Édition Enterprise
| Limite | Détails |
|---|---|
| Nombre maximal total de requêtes d'exportation et d'importation autorisé par minute pour un projet | 20 |
| Nombre maximal d'exportations et d'importations simultanées | 50 |
| Nombre maximal de filtres d'ID de collection autorisé pour les requêtes d'exportation et d'importation | 100 |
Règles de sécurité
Édition standard
| Limite | Détails |
|---|---|
Nombre maximal d'appels de méthode exists(), get() et getAfter() par requête |
Le dépassement de l'une ou l'autre limite entraîne une erreur de type "permission refusée". Certains appels d'accès aux documents peuvent être mis en cache, et les appels en cache ne sont pas pris en compte dans les limites. |
Profondeur maximale d'instructions match imbriquées |
10 |
Longueur maximale du chemin, en segments de chemin, autorisée dans un ensemble d'instructions match imbriquées |
100 |
Nombre maximal de variables de capture de chemin autorisées dans un ensemble d'instructions match imbriquées |
20 |
| Profondeur maximale des appels de fonction | 20 |
| Nombre maximal d'arguments de fonction | 7 |
Nombre maximal de liaisons de variables let par fonction |
10 |
| Nombre maximal d'appels de fonction récursifs ou cycliques | 0 (non autorisé) |
| Nombre maximal d'expressions évaluées par requête | 1 000 |
| Taille maximale d'un ensemble de règles | Les ensembles de règles doivent respecter deux limites de taille :
|
Édition Enterprise
| Limite | Détails |
|---|---|
Nombre maximal d'appels de méthode exists(), get() et getAfter() par requête |
Le dépassement de l'une ou l'autre limite entraîne une erreur de type "permission refusée". Certains appels d'accès aux documents peuvent être mis en cache, et les appels en cache ne sont pas pris en compte dans les limites. |
Profondeur maximale d'instructions match imbriquées |
10 |
Longueur maximale du chemin, en segments de chemin, autorisée dans un ensemble d'instructions match imbriquées |
100 |
Nombre maximal de variables de capture de chemin autorisées dans un ensemble d'instructions match imbriquées |
20 |
| Profondeur maximale des appels de fonction | 20 |
| Nombre maximal d'arguments de fonction | 7 |
Nombre maximal de liaisons de variables let par fonction |
10 |
| Nombre maximal d'appels de fonction récursifs ou cycliques | 0 (non autorisé) |
| Nombre maximal d'expressions évaluées par requête | 1 000 |
| Taille maximale d'un ensemble de règles | Les ensembles de règles doivent respecter deux limites de taille :
|