Consultez ce guide pour comprendre les limites de Cloud Firestore, et la page Tarifs de Cloud Firestore pour obtenir une explication complète et détaillée des coûts de Cloud Firestore, y compris les points à surveiller.
Surveiller votre utilisation
Pour surveiller votre utilisation de Cloud Firestore, ouvrez l'onglet Cloud Firestore Utilisation dans la console Firebase. Utilisez le tableau de bord pour évaluer votre utilisation sur différentes périodes.
Utilisation détaillée dans la Google Cloud console
Lorsque vous créez un projet Firebase, vous créez également un Google Cloud projet. Les pages Cloud Firestore Quotas de l'API et App Engine Quotas de la console Google Cloud suivent l'utilisation de Cloud Firestore et les informations sur les quotas.
Quotas sans frais
Cloud Firestore inclut un quota sans frais qui vous permet de démarrer sans frais. Si vous avez besoin d'un quota plus important, vous devez activer la facturation pour votre Google Cloud projet.
Les quotas sont calculés sur une base quotidienne et réinitialisés vers minuit, heure du Pacifique.
Le tableau suivant récapitule les montants des quotas sans frais :
| 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 |
Les opérations et fonctionnalités suivantes ne sont pas incluses dans l'utilisation sans frais. Vous devez activer la facturation pour les utiliser :
- Suppressions TTL
- Données PITR
- Sauvegarder des données
- Opérations de restauration
- Opérations de clonage
Pour en savoir plus sur la facturation de ces fonctionnalités, consultez Tarifs de stockage.
Limites standards
Les tableaux suivants présentent les limites qui s'appliquent à Cloud Firestore. Sauf indication contraire, ces limites sont strictes.
Bases de données
| Limite | Détails |
|---|---|
| Nombre maximal de bases de données par projet |
100 Vous pouvez contacter l'assistance pour demander une augmentation de cette limite. |
| Nombre maximal de bases de données avec clés de chiffrement gérées par le client (CMEK) par projet |
0 Par défaut, le quota est de 0, car cette fonctionnalité est soumise à une liste d'autorisation. Vous pouvez demander à augmenter le quota en remplissant le formulaire de demande d'accès CMEK. |
Collections, documents et champs
| 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 un accent grave, échappez-le avec une barre oblique inverse (\). Pour plus de commodité, vous pouvez éviter les noms de champ entre guillemets en transmettant le chemin d'accès du champ en tant qu'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
En plus de ces limites, consultez les bonnes pratiques pour concevoir des applications à grande échelle.
| 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
Les limites suivantes s'appliquent aux index à champ unique et aux index composites :
| 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 exception d'indexation à champ unique et une règle TTL sur le même champ sont comptées comme une configuration de champ par rapport à 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 Cloud 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 Cloud 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. |
Valeur TTL (Time to Live)
| 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 exception d'indexation à champ unique et une règle TTL sur le même champ sont comptées comme une configuration de champ par rapport à la limite. |
Exportation/Importation
Les limites ci-dessous sont appliquées aux opérations d'importation et d'exportation gérées :
| 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é
| 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 :
|
Gérer les dépenses
Pour éviter des frais inattendus sur votre facture, définissez des budgets mensuels et des alertes.
Définir un budget mensuel
Pour suivre vos Cloud Firestore coûts, créez un budget mensuel dans la Google Cloud console. Les budgets ne limitent pas votre utilisation, mais vous pouvez définir des alertes pour vous avertir lorsque vous approchez ou dépassez vos coûts prévus pour le mois.
Pour définir un budget, accédez à la section Facturation de la console Google Cloud et créez un budget pour votre compte Cloud Billing. Vous pouvez utiliser les paramètres d'alerte par défaut ou les modifier pour envoyer des notifications à différents pourcentages de votre budget mensuel.
En savoir plus sur la configuration de budgets et d'alertes budgétaires.