Tarifs de Firestore

Ce document décrit les conditions tarifaires de Firestore.

Si vous ne payez pas en USD, les tarifs indiqués dans votre devise sur la page des SKU Cloud Platform s'appliquent.

Présentation de la tarification

Lorsque vous utilisez Firestore, les éléments suivants vous sont facturés :

  • Le nombre de documents que vous lisez, modifiez et supprimez
  • Le nombre d'entrées d'index lues pour satisfaire une requête. En savoir plus sur les lectures d'index
  • L'espace de stockage utilisé par votre base de données, y compris la surcharge liée aux métadonnées et aux index
  • La quantité de bande passante réseau utilisée

L'utilisation de l'espace de stockage et de la bande passante est calculée en gibioctets (Gio). 1 Gio correspond à 230 octets. Tous les frais sont comptabilisés quotidiennement.

Les sections suivantes expliquent comment les frais d'utilisation de Firestore vous sont facturés.

Quota gratuit

Firestore inclut un quota gratuit qui vous permet votre base de données (default), sans frais. Les montants de quotas gratuits sont répertoriés ci-dessous. Si vous avez besoin d'augmenter vos quotas, vous devez activer la facturation pour votre projet Google Cloud.

Les quotas sont calculés sur une base quotidienne et réinitialisés vers minuit, heure du Pacifique.

Seule la base de données (default) peut bénéficier du quota gratuit.

Version gratuite 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 n'incluent pas une utilisation sans frais. Vous devez activer la facturation pour utiliser ces fonctionnalités:

  • Utilisation de bases de données nommées (autres que celles par défaut)
  • Suppressions de la valeur TTL
  • Données PITR
  • Données de sauvegarde
  • Opérations de restauration

Pour en savoir plus sur la facturation de ces fonctionnalités, consultez Tarifs de stockage

Tarifs par emplacement

Le tableau suivant présente les tarifs appliqués aux opérations de lecture, d'écriture, de suppression et de stockage pour chaque emplacement Firestore :

Si vous ne payez pas en USD, les tarifs indiqués dans votre devise sur la page des codes SKU Cloud Platform s'appliquent.

Aucun quota gratuit pour les bases de données nommées

Pour créer une base de données nommée (autre que celle par défaut), vous devez activer la facturation.

La création ou la suppression des bases de données nommées ne vous coûte rien, mais elles ne sont pas éligibles au quota gratuit. Au lieu de cela, vous serez facturés en fonction de l'utilisation de ces bases de données nommées.

Lectures, écritures et suppressions

Les documents et entrées d'index lus pour répondre à une requête vous sont facturés. Vous êtes chaque opération d'écriture et de suppression effectuée est facturée.

La tarification des écritures et des suppressions est simple. Pour les écritures, chaque opération set ou update est comptabilisée comme une seule écriture.

Les frais liés aux opérations de lecture des nuances que vous devez garder à l’esprit. Les sections suivantes décrivent ces variations en détail.

Lectures d'entrées d'index

Une opération de lecture vous est facturée pour chaque lot de 1 000 entrées d'index au maximum. lu par une requête, sauf dans les cas suivants:

  • Pour les requêtes de recherche sur les vecteurs K des voisins les plus proches, un montant vous est facturé opération de lecture pour chaque lot de 100 kNN d'entrées d'index vectoriel au maximum lues par la requête.

    Par exemple, si la requête de recherche vectorielle suivante avec limit: 5 renvoie 5 documents et lit 1 550 entrées d'index vectoriel à kNN. vous êtes facturé 5 opérations de lecture pour les documents renvoyés et 16 opérations de lecture pour les entrées d'index:

    // Requires single-field vector index
    const vectorQuery: VectorQuery = db.collection('cities').findNearest('embedding_field', FieldValue.vector([3.0, 1.0, 2.0]), {
      limit: 5,
      distanceMeasure: 'EUCLIDEAN'
    });
    
  • Les requêtes comportant jusqu'à un champ de plage ne sont pas facturées pour les entrées d'index lire.

    Par exemple, la requête suivante contient un champ d'égalité (age) et un (start_date) et n'est pas facturé pour la lecture d'entrées d'index:

    db.collection("employees").whereEqualTo("age", 35)
                              .whereGreaterThanOrEqualTo("start_date", new Date(2020, 1, 1))
    

    La requête suivante contient deux champs de plage (age et start_date) et est facturés pour les lectures d'entrées d'index:

    db.collection("employees").whereGreaterThanOrEqualTo("age", 35)
                              .whereGreaterThanOrEqualTo("start_date", new Date(2020, 1, 1))
    

    Un champ qui apparaît dans la clause est considéré comme un champ de plage lorsque il y a au moins un autre champ de plage dans la requête. Par conséquent, la requête suivante contient deux champs de plage (age et start_date) et est facturé pour les lectures d'entrées d'index:

    db.collection("employees").whereGreaterThanOrEqualTo("age", 35)
                              .orderBy("start_date")
    

    Le champ __name__ est toujours considéré comme un champ de plage, même s'il n'est utilisée dans un filtre d'égalité. Par conséquent, la requête suivante contient deux plages (age et __name__) et est facturé pour les lectures d'entrées d'index:

    db.collection("employees").whereIn("__name__", Arrays.asList("/employees/Alice", "/employees/Bob"))
                              .orderBy("age")
    

Requêtes d'agrégation

Pour les requêtes d'agrégation comme count(), sum() et avg(), les entrées d'index lues par la requête vous sont facturées décrites ci-dessus. Pour les requêtes d'agrégation qui lisent 0 index des entrées, des frais minimum sont facturés pour une lecture de document.

Par exemple, les opérations count() qui lisent entre 0 et 1 000 entrées d'index sont facturés pour une lecture de document. Pour une opération count() qui indique 1 500 deux lectures de documents vous sont facturées.

Pour en savoir plus sur les index utilisés et les entrées d'index lues, utilisez Query Explain :

Écouter les résultats des requêtes

Firestore vous permet d'écouter les résultats d'une requête et d'obtenir des mises à jour en temps réel lorsque les résultats changent.

Lorsque vous écoutez les résultats d'une requête, une lecture vous est facturée chaque fois qu'un document de l'ensemble de résultats est ajouté ou mis à jour. Une lecture vous est également facturée lorsqu'un document est retiré de l'ensemble de résultats, car le document a été modifié. En revanche, lors de la suppression d'un document, aucuns frais de lecture ne vous sont facturés.

La facturation des écouteurs dans les SDK pour mobile et Web dépend également de la manière la persistance hors connexion est activée ou non:

  • Si la persistance hors connexion est activée et que l'écouteur est déconnecté pour plus de 30 minutes (par exemple, si l'utilisateur se déconnecte), vous êtes facturés pour les documents et les entrées d'index lus comme si vous aviez émis un requête.

  • Si la persistance hors connexion est désactivée, les documents et les entrées d'index sont lues comme si vous aviez émis une toute nouvelle requête chaque fois que l'écouteur se déconnecte et se reconnecte.

Gérer des ensembles de résultats volumineux

Firestore offre les fonctionnalités suivantes pour vous aider à gérer les requêtes qui renvoient un grand nombre de résultats :

  • Les curseurs, qui vous permettent de reprendre une requête de longue durée
  • Les jetons de page, qui vous aident à paginer les résultats des requêtes
  • Les limites, qui spécifient le nombre de résultats à récupérer
  • Les décalages, qui vous permettent d'ignorer un nombre fixe de documents

L'utilisation de curseurs, de jetons de page et de limites ne génère aucun coût supplémentaire. Grâce à ces fonctionnalités, vous pouvez réaliser des économies en ne lisant que les documents dont vous avez réellement besoin.

Toutefois, lorsque vous envoyez une requête qui inclut un décalage, une lecture vous est facturée pour chaque document ignoré. Par exemple, si votre requête utilise un décalage de 10 et renvoie 1 document, 11 lectures vous sont facturées. En raison de ce coût supplémentaire, il convient d'utiliser, dans la mesure du possible, les curseurs plutôt que les décalages.

Requêtes autres que les lectures de documents

Pour les requêtes autres que les lectures de documents, telles qu'une requête de liste d'ID de collection, une lecture de document vous est facturée. Si la récupération de l'ensemble complet de résultats requiert plusieurs requêtes (par exemple, dans le cas où vous utilisez la pagination), chacune d'elles vous est facturée.

Coût minimal des requêtes

Un coût minimal correspondant à une lecture de document vous est facturé pour chaque requête exécutée, même si celle-ci ne renvoie aucun résultat.

Règles de sécurité Firestore

Pour les bibliothèques clientes mobiles et Web, si vos règles de sécurité Firestore utilisent exists(), get() ou getAfter() pour lire un ou plusieurs documents de votre base de données, les lectures supplémentaires vous sont facturées comme suit :

  • Les lectures nécessaires à l'évaluation de vos règles de sécurité Firestore vous sont facturées.

    Par exemple, si vos règles font référence à trois documents mais que Firestore a uniquement besoin d'en lire deux pour évaluer vos règles, deux lectures supplémentaires vous sont facturées pour les documents dépendants.

    Une seule lecture par document dépendant vous est facturée, même si vos règles font référence à ce document plusieurs fois.

  • L'évaluation des règles ne vous est facturée qu'une fois par requête.

    Par conséquent, lire plusieurs documents peut s'avérer moins coûteux que de les lire un par un, car la lecture de plusieurs documents implique moins de requêtes.

  • Lorsque vous écoutez les résultats d'une requête, l'évaluation de la règle vous est facturée dans tous les cas suivants :

    • Lors de l'émission de la requête
    • Chaque fois que les résultats de la requête sont mis à jour
    • Chaque fois que l'appareil de l'utilisateur se déconnecte, puis se reconnecte
    • Chaque fois que vous mettez à jour vos règles
    • Chaque fois que vous mettez à jour les documents dépendants dans vos règles

Taille de l'espace de stockage de la base de données

La quantité de données que vous stockez dans Firestore vous est facturée, y compris la surcharge de stockage. Le volume de cette surcharge inclut les métadonnées, les index automatiques et les index composites.

Chaque document stocké dans Firestore nécessite les métadonnées suivantes:

  • L'ID du document, y compris l'ID de collection et le nom du document
  • Le nom et la valeur de chaque champ. Firestore étant une base de données sans schéma, le nom de chaque champ d'un document doit être stocké avec la valeur du champ.
  • Tous les index composites et à champ unique faisant référence au document. Chaque entrée d'index contient l'ID de collection, un nombre quelconque de valeurs de champs dépendant de la définition de l'index, ainsi que le nom du document.

Les coûts de stockage sont exprimés en Gio/mois et calculés quotidiennement. Firestore mesure la taille quotidienne de la base de données. Sur une période d'un mois, la moyenne de ces points d'échantillon est calculée pour calculer la taille de stockage de la base de données. Cette valeur moyenne est multipliée par le prix unitaire de stockage (Gio/mois)

Consultez la page Calculs de la taille des espaces de stockage pour découvrir comment la taille de l'espace de stockage de Firestore est calculée.

Données PITR

Si vous activez la PITR, son stockage vous est facturé données. La plupart des clients constateront que le coût global du stockage de données PiTR est de semblables au coût de stockage de la base de données.

Les coûts de stockage pour la récupération à un moment précis sont exprimés en Gio/mois. sont calculées quotidiennement. Firestore mesure la taille de la base de données quotidiennement. Au-dessus pour la période d'un mois, la moyenne de ces points d'échantillonnage est calculée la taille de stockage de la base de données. Cette valeur moyenne est multipliée par le prix unitaire PITR (Gio/mois).

Par exemple, si la taille moyenne de votre base de données mois correspond à 1 Gio et que la récupération à un moment précis est activée pour le mois entier, puis la récupération à un moment précis facturable la taille des données est également de 1 Gio.

Facturation minimale: jusqu'à un jour du coût de stockage PITR peut vous être facturé, même si vous désactiver la récupération à un moment précis dans la journée suivant l'activation.

Opérations de sauvegarde et de restauration des données

Si vous activez les sauvegardes, le stockage des vos sauvegardes de base de données. La taille de l'espace de stockage d'une sauvegarde est égale à l'espace de stockage la taille de la base de données lorsque vous avez effectué la sauvegarde.

Les coûts de stockage des sauvegardes sont exprimés en Gio/mois. Sur un mois, le le nombre moyen de jours pendant lesquels chaque sauvegarde est conservée, calculé. Le coût de chaque sauvegarde est calculé en fonction de la taille de l'espace de stockage sauvegarde multipliée par la proportion du mois où la sauvegarde est conservée, multiplié par le prix unitaire.

Lorsque vous effectuez une opération de restauration, Firestore mesure la de la sauvegarde pour l'opération de restauration. La taille de la sauvegarde est multiplié par le prix unitaire des opérations de restauration (Gio).

Explication de la requête

L'utilisation de Firestore Query Explain entraîne des frais.

Lorsqu'une requête est expliquée avec l'option par défaut, aucune opération de lecture d'index n'est d'exécution. Quelle que soit la complexité de la requête, une opération de lecture est facturée.

Lorsqu'une requête est expliquée avec l'option d'analyse, indexer et lire sont effectuées, les frais liés à la requête vous sont donc facturés comme d'habitude. Il n'y a aucun des frais supplémentaires pour l'explication et l'analyse de l'activité (uniquement les frais habituels) ; pour la requête en cours d'exécution.

Bande passante réseau

La quantité de bande passante réseau utilisée par vos requêtes Firestore vous est facturée, comme indiqué dans les sections suivantes. Le coût d'une requête Firestore en termes de bande passante réseau dépend de la taille de la réponse, de l'emplacement de votre base de données Firestore et de la destination de la réponse.

Firestore calcule la taille de la réponse en fonction d'un format de message sérialisé. La surcharge de protocole, telle que la surcharge SSL, n'est pas comptabilisée dans le calcul de l'utilisation de la bande passante réseau. Les requêtes refusées par vos règles de sécurité Firestore ne sont pas non plus prises en compte dans ce calcul.

Pour connaître la quantité de données la bande passante utilisée, vous pouvez utiliser la console Google Cloud pour exporter vos données de facturation dans un fichier.

Tarifs généraux du réseau

Pour les requêtes provenant de Google Cloud Platform (par exemple, d'une application exécutée sur Google Compute Engine), les frais à payer sont calculés comme indiqué ci-dessous.

Type de trafic Prix
Transfert de données entrant Gratuit
Transfert de données au sein d'une région Gratuit
Transfert de données entre des régions d'un même emplacement multirégional Gratuit
Transfert de données entre régions aux États-Unis (par Gio) 0,01 $ (les 10 premiers Gio par mois sont gratuits)
Transfert de données entre régions, à l'exclusion du trafic entre les régions des États-Unis Taux de transfert des données Internet sortantes Google Cloud Platform

Si vous ne payez pas en USD, les tarifs indiqués dans votre devise sur la page des codes SKU Cloud Platform s'appliquent.

Taux de transfert de données Internet

Le transfert de données par Internet vous sera facturé pour les éléments suivants:

  • Requêtes Google Cloud entre régions, à l'exclusion du trafic entre les régions des États-Unis
  • Requêtes provenant de l'extérieur de Google Cloud (par exemple, de l'appareil mobile d'un utilisateur)

Si vous ne payez pas en USD, les tarifs indiqués dans votre devise sur la page des SKU Cloud Platform s'appliquent.

Surveiller l'utilisation

Pour savoir comment surveiller votre utilisation de Firestore, consultez Surveiller l'utilisation

Gérer les dépenses

Pour gérer vos dépenses, définissez des budgets mensuels et des alertes.

Budgets et alertes de Google Cloud

Vous pouvez définir un budget mensuel pour tous les services Google Cloud. Utilisez-le pour surveiller vos coûts Google Cloud globaux, y compris les frais liés à la bande passante réseau que vous utilisez pour Firestore. Après avoir fixé un budget, vous pouvez définir des alertes afin de recevoir des notifications par e-mail à mesure que vos coûts se rapprochent du montant de votre budget.

Suivez ces instructions pour définir un budget mensuel et créer des alertes dans la console Google Cloud.

Exemple de tarification

Pour découvrir comment les frais facturés pour Firestore sont comptabilisés dans un exemple d'application concret, consultez l'exemple de facturation pour Firestore.

Étape suivante

Demander un devis personnalisé

Avec le paiement à l'usage de Google Cloud, vous ne payez que pour les services que vous utilisez. Contactez notre équipe commerciale pour obtenir un devis personnalisé pour votre entreprise.
Contacter le service commercial