Utilisation et limites

Utilisez ce guide pour comprendre les limites Nuage FireStore, et voir Prix Nuage Firestore pour une explication complète et détaillée des coûts cloud FireStore, y compris des choses à surveiller.

Surveillez votre utilisation

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

Utilisation détaillée dans Google Cloud Console

Lorsque vous créez un projet Firebase, vous créez également un projet Google Cloud. L' App Quotas Engine page dans le suivi Cloud Console Google utilisation Nuage Firestore et informations quota.

Quota gratuit

Cloud Firestore propose un quota gratuit qui vous permet de démarrer sans frais. Les montants des quotas gratuits sont indiqués ci-dessous. Si vous avez besoin de plus quota, vous devez activer la facturation de votre projet Cloud Platform .

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

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
Sortie du réseau 10 Gio par mois

Limites standard

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

Collections, documents et champs

Limite Des détails
Contraintes sur les ID de collection
  • Doit être des caractères UTF-8 valides
  • Ne doit pas dépasser 1 500 octets
  • Ne peut pas contenir une barre oblique ( / )
  • Ne peut pas être constitué uniquement d'une seule période ( . ) Ou doubles périodes ( .. )
  • Ne peut pas correspondre à l'expression régulière __.*__
Profondeur maximale des sous-collections 100
Contraintes sur les ID de document
  • Doit être des caractères UTF-8 valides
  • Ne doit pas dépasser 1 500 octets
  • Ne peut pas contenir une barre oblique ( / )
  • Ne peut pas être constitué uniquement d'une seule période ( . ) Ou doubles périodes ( .. )
  • Ne peut pas correspondre à l'expression régulière __.*__
  • Si vous importez des entités dans une magasin de données base de données Firestore, ID d'entités numériques sont exposées comme __id[0-9]+__
Taille maximale pour un nom de document 6 Kio
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 champ
  • Doit séparer les noms de champs avec une seule période ( . )
  • Peut être passé comme une chaîne lorsque tous les noms de champs dans le chemin sont simples, doit par ailleurs être passé comme un objet FieldPath ( par exemple JavaScript FieldPath )
Un nom de champ simple est un nom où toutes les conditions suivantes sont vraies :
  • Contient uniquement les caractères az , AZ , 0-9 et underscore ( _ )
  • Ne pas commencer par 0-9
Taille maximale d'un chemin de champ 1 500 octets
Taille maximale d'une valeur de champ 1 Mio - 89 octets (1 048 487 octets)
Profondeur de champs maximale dans une carte ou un tableau 20

Écritures et transactions

Limite Des détails
Nombre maximal d'écritures par seconde par base de données 10 000 (jusqu'à 10 Mio par seconde)
Taille maximale des requêtes API 10 Mio
Le nombre maximum d'écritures qui peuvent être transmis à une Commit opération ou exécutées dans une transaction 500
Nombre maximum de transformations sur le terrain qui peuvent être effectuées sur un seul document dans une Commit opération ou dans une transaction 500
Délai pour une transaction 270 secondes, avec un délai d'expiration inactif de 60 secondes

Limites souples

Cloud Firestore ne vous empêche pas de dépasser les seuils ci-dessous, mais cela affecte les performances.

Limite souple Des détails
Taux d'écriture soutenu maximum dans un document

1 par seconde

Le maintien d'un taux d'écriture supérieur à une fois par seconde augmente la latence et provoque des erreurs de contention. Ce n'est pas une limite stricte, et vous pouvez dépasser la limite en courtes rafales.

Taux d'écriture maximal dans une collection dans laquelle les documents contiennent des valeurs séquentielles dans un champ indexé 500 par seconde

Mises à jour en temps réel

Limite souple Des détails
Nombre maximal de connexions simultanées pour les clients mobiles/web par base de données

1 000 000

Cloud Firestore ne vous empêche pas de dépasser cette limite souple, mais cela affecte considérablement la latence et le taux d'erreur.

Index

Les limites suivantes sont d' application pour les index de champ unique et indices composites :

Limite Des détails
Nombre maximum d'index composites pour une base de données 200
Nombre maximal d'exemptions d'index à champ unique pour une base de données 200

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 composites

Pour voir comment Nuage Firestore transforme un document et un ensemble d'indices dans les entrées d'index, voir cet indice exemple de comptage d'entrée .

Taille maximale d'une entrée d'index

7,5 Kio

Pour voir comment Nuage Firestore calcule la taille d'entrée d'index, voir la taille d'entrée d'index .

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

8 Mio

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ée

    1500 octets

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

    Exporter/Importer

    Les limites suivantes sont applicables aux gérées opérations d'importation et d' exportation :

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

    Règles de sécurité

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

      Par exemple, imaginez que vous créez une demande d'écriture groupée avec 3 opérations d'écriture et que vos règles de sécurité utilisent 2 appels d'accès au document 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 des limites 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.

    Maximum imbriqué match de la profondeur de l' instruction dix
    Longueur maximale du chemin, dans des segments de chemin, a permis dans un ensemble de imbriquées match déclarations 100
    Le nombre maximum de chemins variables de capture autorisée dans un ensemble de imbriquées match déclarations 20
    Profondeur maximale d'appel de fonction 20
    Nombre maximum d'arguments de fonction 7
    Nombre maximum de let liaisons variables par fonction dix
    Nombre maximum d'appels de fonction 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 de la taille de la source de texte publié à partir de la ruleset 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 se produit lorsque Firebase traite la source et la rend active sur le back-end.

    Gérer les dépenses

    Pour éviter des frais imprévus 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 Google Cloud Console. 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, allez à la facturation section dans la console Google Cloud et de créer un budget pour votre compte de facturation Cloud. 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 mise en place des budgets et des alertes budgétaires .

    Fixer une limite de dépenses quotidienne

    Pour limiter votre utilisation de Cloud Firestore, définissez une limite de dépenses quotidienne via App Engine. App Engine vous permet de définir une limite de dépenses quotidiennes sur App Engine ressources associées, y compris Nuage Firestore. La limite App Engine ne s'applique à aucun autre produit Firebase.