Utilisation et limites

Utilisez ce guide pour comprendre les limites de Cloud Firestore et consultez la tarification de Cloud Firestore pour une explication complète et détaillée des coûts de Cloud Firestore, y compris les éléments à surveiller.

Surveillez votre utilisation

Pour surveiller votre utilisation de Cloud Firestore, ouvrez l' onglet Utilisation de Cloud Firestore dans la console Firebase. Utilisez le tableau de bord pour évaluer votre utilisation sur différentes périodes.

Utilisation détaillée dans la console Google Cloud

Lorsque vous créez un projet Firebase, vous créez également un projet Google Cloud. Les pages Quotas de l'API Cloud Firestore et Quotas App Engine de la console Google Cloud suivent l'utilisation de Cloud Firestore et les informations sur les quotas.

Quota gratuit

Cloud Firestore offre un quota gratuit qui vous permet de démarrer gratuitement avec votre base de données (default) . Les montants des quotas gratuits sont indiqués ci-dessous. Si vous avez besoin de plus de quota, vous devez activer la facturation pour votre projet Google Cloud .

Les quotas sont appliqués quotidiennement et réinitialisés vers minuit, heure du Pacifique.

Seule la base de données (default) est éligible au quota gratuit.

Niveau gratuit Quota
Les données stockées 1 Gio
Lectures de documents 50 000 par jour
Document écrit 20 000 par jour
Suppressions de documents 20 000 par jour
Transfert de données sortantes 10 Gio par mois

Les opérations et fonctionnalités suivantes n’incluent pas une utilisation gratuite. Vous devez activer la facturation pour utiliser ces fonctionnalités :

  • Utilisation de bases de données nommées (non par défaut)
  • TTL supprime
  • Données PITR
  • Données de sauvegarde
  • Opérations de restauration

Pour plus d'informations sur la façon dont ces fonctionnalités sont facturées, consultez Tarification du stockage .

Limites standards

Les tableaux suivants montrent les limites qui s'appliquent à Cloud Firestore. Ce sont des limites strictes, sauf indication contraire.

Bases de données

Limite Détails
Nombre maximum de bases de données par projet

100

Vous pouvez contacter le support pour demander une augmentation de cette limite.

Collections, documents et champs

Limite Détails
Contraintes sur les identifiants de collection
  • Doit être des caractères UTF-8 valides
  • Ne doit pas dépasser 1 500 octets
  • Ne peut pas contenir de barre oblique ( / )
  • Ne peut pas être constitué uniquement d'un seul point ( . ) ou de deux points ( .. )
  • Ne peut pas correspondre à l'expression régulière __.*__
Profondeur maximale des sous-collections 100
Contraintes sur les identifiants de documents
  • Doit être des caractères UTF-8 valides
  • Ne doit pas dépasser 1 500 octets
  • Ne peut pas contenir de barre oblique ( / )
  • Ne peut pas être constitué uniquement d'un seul point ( . ) ou de deux points ( .. )
  • Ne peut pas correspondre à l'expression régulière __.*__
  • Si vous importez des entités Datastore dans une base de données Firestore, les ID d'entité numériques sont exposés sous la forme __id[0-9]+__
Taille maximale pour un nom de document 6 Ko
Taille maximale d'un document 1 Mio (1 048 576 octets)
Contraintes sur les noms de champs Doit être des caractères UTF-8 valides
Taille maximale d'un nom de champ 1 500 octets
Contraintes sur les chemins de champs
  • Doit séparer les noms de champs par un seul point ( . )
  • Peut être transmis sous forme de chaîne de segments délimités par des points ( . ) où chaque segment est soit un simple nom de champ, soit un nom de champ entre guillemets (défini ci-dessous).
Un nom de champ simple est un nom pour lequel toutes les conditions suivantes sont vraies :
  • Contient uniquement les caractères az , AZ , 0-9 et le trait de soulignement ( _ ).
  • Ne commence pas par 0-9
Un nom de champ entre guillemets commence et se termine par le caractère backtick ( ` ). Par exemple, foo.`x&y` fait référence au champ x&y imbriqué sous le champ foo . Pour construire un nom de champ avec le caractère backtick, échappez le caractère backtick avec le caractère barre oblique inverse ( \ ). Pour plus de commodité, vous pouvez éviter les noms de champs entre guillemets en transmettant le chemin du champ en tant qu'objet FieldPath ( par exemple, voir JavaScript FieldPath ).
Taille maximale d'un chemin de champ 1 500 octets
Taille maximale d'une valeur de champ 1 Mo - 89 octets (1 048 487 octets)
Profondeur maximale des champs dans une carte ou un tableau 20

Écritures et transactions

En plus de ces limites, vous devriez également consulter les meilleures pratiques de conception à grande échelle .

Limite Détails
Taille maximale des requêtes API 10 Mo
Délai pour une transaction 270 secondes, avec un délai d'expiration d'inactivité de 60 secondes

Index

Les limites suivantes s'appliquent aux index à champ unique et aux index composites :

Limite Détails
Nombre maximum d'index composites pour une base de données
Nombre maximum 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 sur un seul champ et une politique TTL sur le même champ comptent comme une configuration de champ dans la limite.

Nombre maximum d'entrées d'index pour chaque document

40 000

Le nombre d'entrées d'index est la somme des éléments suivants pour un document :

  • Le nombre d'entrées d'index à champ unique
  • Le nombre d'entrées d'index composite

Pour voir 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 maximum de champs dans un index composite 100
Taille maximale d'une entrée d'index

7,5 Ko

Pour voir comment Cloud Firestore calcule la taille de l'entrée d'index, consultez taille de l'entrée d'index .

Somme maximale des tailles des entrées d'index d'un document

8 Mo

La taille totale est la somme des éléments suivants pour un document :

  • La somme de la taille des entrées d'index à champ unique d'un document
  • La somme de la taille des entrées d'index composite d'un document
  • Taille maximale d'une valeur de champ indexé

    1500 octets

    Les valeurs de champ supérieures à 1 500 octets sont tronquées. Les requêtes impliquant des valeurs de champ tronquées peuvent renvoyer des résultats incohérents.

    Durée de vie (TTL)

    Limite Détails
    Nombre maximum 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 sur un seul champ et une politique TTL sur le même champ comptent comme une configuration de champ dans la limite.

    Exporter/Importer

    Les limites suivantes s'appliquent aux opérations d'import et d'export gérées :

    Limite Détails
    Nombre total maximum de demandes d'exportation et d'importation pour un projet autorisées par minute 20
    Nombre maximum d'exportations et d'importations simultanées 50
    Nombre maximum de filtres d'ID de collection pour les demandes d'exportation et d'importation 100

    Règles de sécurité

    Limite Détails
    Nombre maximum d'appels exists() , get() et getAfter() par requête
    • 10 pour les demandes de document unique et les demandes de requête.
    • 20 pour les lectures, transactions et écritures par lots de plusieurs documents. La limite précédente de 10 s'applique également à chaque opération.

      Par exemple, imaginez que vous créez une demande d'écriture par lots avec 3 opérations d'écriture et que vos règles de sécurité utilisent 2 appels d'accès aux documents pour valider chaque écriture. Dans ce cas, chaque écriture utilise 2 de ses 10 appels d'accès et la demande d'écriture par lots utilise 6 de ses 20 appels d'accès.

    Le dépassement de l’une ou l’autre limite entraîne une erreur d’autorisation refusée.

    Certains appels d'accès aux documents peuvent être mis en cache et les appels mis en cache ne sont pas pris en compte dans les limites.

    Profondeur maximale match imbriquées dix
    Longueur de chemin maximale, en segments de chemin, autorisée dans un ensemble d'instructions match imbriquées 100
    Nombre maximum de variables de capture de chemin autorisées dans un ensemble d'instructions match correspondance imbriquées 20
    Profondeur maximale des appels de fonction 20
    Nombre maximum d'arguments de fonction 7
    Nombre maximum de liaisons de variables let par fonction dix
    Nombre maximum d'appels de fonctions récursifs ou cycliques 0 (non autorisé)
    Nombre maximum d'expressions évaluées par requête 1 000
    Taille maximale d'un ensemble de règles Les ensembles de règles doivent obéir à deux limites de taille :
    • une limite de 256 Ko sur la taille de la source de texte de l'ensemble de règles publiée à partir de la console Firebase ou de la CLI à l'aide firebase deploy .
    • une limite de 250 Ko sur la taille de l'ensemble de règles compilé qui résulte lorsque Firebase traite la source et la rend active sur le back-end.

    Gérer les dépenses

    Pour éviter des frais inattendus sur votre facture, définissez des budgets et des alertes mensuels.

    Définir un budget mensuel

    Pour suivre vos coûts Cloud Firestore, créez un budget mensuel dans la console Google Cloud. Les budgets ne limiteront 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 modifier les alertes pour envoyer des notifications à différents pourcentages de votre budget mensuel.

    En savoir plus sur la configuration des budgets et des alertes budgétaires .