Ce document explique les détails de la tarification Cloud 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 Cloud 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 répondre à 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 l'utilisation de votre Cloud Firestore vous est facturée.
Quota sans frais
Cloud Firestore propose un quota sans frais qui vous permet de commencer 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 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.
Tarifs par emplacement
Pour connaître les tarifs des lectures, des écritures, des suppressions et du stockage pour chaque Cloud Firestore emplacement, consultez Google Cloud tarifs.
Si vous ne payez pas en USD, les tarifs indiqués dans votre devise sur la page des SKU Cloud Platform s'appliquent.
Le quota sans frais ne s'applique qu'à une seule base de données par projet
Les projets ne peuvent avoir qu'une seule base de données éligible au quota sans frais.
Pour créer des bases de données supplémentaires, vous devez passer au forfait supérieur pour votre projet.
La première base de données que vous créez (quel que soit son ID) est éligible au quota sans frais. Si vous supprimez cette base de données, la base de données suivante que vous créez devient la nouvelle base de données éligible au quota sans frais.
La création ou la suppression de bases de données n'entraîne aucun coût supplémentaire. Toutes les bases de données suivantes seront facturées en fonction de l'utilisation qu'elles génèrent.
Lectures, écritures et suppressions
Les documents et les entrées d'index lus pour répondre à une requête vous sont facturés. Chaque écriture et suppression de document que vous effectuez vous 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.
La tarification des opérations de lecture présente certaines nuances à prendre en compte. 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 (maximum) lues par une requête, sauf dans les cas suivants :
Pour les requêtes de recherche vectorielle des k plus proches voisins , une opération de lecture vous est facturée pour chaque lot de 100 entrées d'index vectoriel kNN (maximum) lues par la requête.
Par exemple, si la requête de recherche vectorielle suivante avec
limit: 5renvoie 5 documents et lit 1 550 entrées d'index vectoriel kNN, 5 opérations de lecture vous sont facturées 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 lues.
Par exemple, la requête suivante contient un champ d'égalité (
age) et un champ de plage (start_date), et n'est pas facturée pour les entrées d'index lues :db.collection("employees").whereEqualTo("age", 35) .whereGreaterThanOrEqualTo("start_date", new Date(2020, 1, 1))La requête suivante contient deux champs de plage (
ageetstart_date) et est facturée 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 "order by" est considéré comme un champ de plage lorsqu'il existe au moins un autre champ de plage dans la requête. Par conséquent, la requête suivante contient deux champs de plage (
ageetstart_date) et est facturée 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é que dans un filtre d'égalité. Par conséquent, la requête suivante contient deux champs de plage (ageet__name__) et est facturée 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
telles que count(), sum() et avg(),
les entrées d'index lues par la requête vous sont facturées comme
décrit ci-dessus. Pour les requêtes d'agrégation qui lisent 0 entrée d'index, un coût minimal correspondant à une lecture de document vous est facturé.
Par exemple, les opérations count() qui lisent entre 0 et 1 000 entrées d'index sont facturées à raison d'une lecture de document. Pour une opération count() qui lit 1 500 entrées d'index, deux lectures de document 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
Cloud 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 Web et mobiles dépend également de l'activation ou non de la persistance hors connexion :
Si la persistance hors connexion est activée et que l'écouteur est déconnecté pendant plus de 30 minutes (par exemple, dans le cas où l'utilisateur passe en mode hors connexion), des frais vous sont facturés pour les documents et les entrées d'index lus comme si vous aviez émis une nouvelle requête.
Si la persistance hors connexion est désactivée, des frais vous sont facturés pour les documents et les entrées d'index lus comme si vous aviez émis une nouvelle requête chaque fois que l'écouteur se déconnecte et se reconnecte.
Gérer des ensembles de résultats volumineux
Cloud Firestore propose plusieurs fonctionnalités pour vous aider à gérer les requêtes qui renvoient un grand nombre de résultats :
- 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.
Cloud Firestore Security Rules
Pour les bibliothèques clientes Web et mobiles, si vos
Cloud Firestore Security Rules utilisent exists(), get() ou getAfter() pour lire
un ou plusieurs documents de votre base de données, des lectures supplémentaires vous sont facturées
comme suit :
Les lectures nécessaires à l'évaluation de vos Cloud Firestore Security Rules vous sont facturées.
Par exemple, si vos règles font référence à trois documents et si Cloud Firestore n'a besoin d'en lire que 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 Cloud 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 Cloud Firestore requiert 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. Cloud 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. Cloud Firestore mesure la taille de la base de données tous les jours. Sur une période d'un mois, la moyenne de ces points d'échantillonnage est calculée pour déterminer la taille de l'espace de stockage de la base de données. Cette valeur moyenne est multipliée par le prix unitaire du 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 Cloud Firestore est calculée.
Données PITR
Si vous activez la récupération PITR, le stockage des données PITR vous est facturé. La plupart des clients constateront que le coût global du stockage des données PITR est similaire au coût de stockage de la base de données.
Les coûts de stockage pour la récupération PITR sont exprimés en Gio/mois et calculés quotidiennement. Cloud Firestore mesure la taille de la base de données tous les jours. Sur une période d'un mois, la moyenne de ces points d'échantillonnage est calculée pour déterminer la taille de l'espace de stockage de la base de données. Cette valeur moyenne est multipliée par le prix unitaire de la récupération PITR (Gio-mois).
Par exemple, si la taille moyenne de votre base de données au cours d'un mois est de 1 Gio et que la récupération PITR est activée pendant tout le mois, la taille des données PITR facturables est également de 1 Gio.
Facturation minimale : des frais de stockage PITR peuvent vous être facturés pour un maximum d'un jour, même si vous désactivez la récupération PITR dans la journée suivant son activation.
Sauvegarder des données et opérations de restauration
Si vous activez les sauvegardes, le stockage de vos sauvegardes de bases de données vous est facturé. La taille de l'espace de stockage d'une sauvegarde est égale à celle de la base de données au moment de la sauvegarde.
Les coûts de stockage des sauvegardes sont exprimés en Gio/mois. Sur une période d'un mois, le nombre de jours pendant lesquels chaque sauvegarde est conservée, en moyenne sur le mois, est également calculé. Le coût de chaque sauvegarde est calculé en multipliant la taille de l'espace de stockage de la sauvegarde par la proportion du mois pendant laquelle la sauvegarde est conservée, puis par le prix unitaire. Les limites de jour sont définies par le fuseau horaire America/Los_Angeles à des fins de facturation.
Lorsque vous effectuez une opération de restauration, Cloud Firestore mesure la taille de la sauvegarde pour l'opération de restauration. La taille de la sauvegarde est multipliée par le prix unitaire des opérations de restauration (Gio).
Explication de la requête
L'utilisation de Firestore Query Explain entraîne des coûts.
Lorsqu'une requête est expliquée avec l'option par défaut, aucune opération de lecture d'index n'est effectuée. 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, des opérations d'index et de lecture sont effectuées. La requête vous est donc facturée comme d'habitude. L'activité d'explication et d'analyse n'entraîne aucun frais supplémentaire, mais uniquement les frais habituels pour l'exécution de la requête.
Bande passante réseau
La bande passante réseau utilisée par vos Cloud Firestore requêtes vous est facturée comme indiqué dans les sections suivantes. Le coût d'une requête 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 et de la destination de la réponse.Cloud FirestoreCloud Firestore
Cloud 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 Cloud Firestore Security Rules ne sont pas non plus prises en compte dans ce calcul.
Pour déterminer la quantité de bande passante réseau utilisée, vous pouvez exporter vos données de facturation dans un fichier à l'aide de la console Google Cloud.
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 | Libre |
| Transfert de données dans une région | Libre |
| Transfert de données entre des régions d'un même emplacement multirégional | Libre |
| Transfert de données entre des régions aux États-Unis (par Gio) | 0,01 $ (les 10 premiers Gio par mois sont sans frais) |
| Transfert de données entre des régions, à l'exclusion du trafic entre les régions des États-Unis | Tarifs de sortie Internet de Google Cloud Platform |
Si vous ne payez pas en USD, les tarifs indiqués dans votre devise sur la page des SKU Cloud Platform s'appliquent.
Cloud Firestore est également soumis à des frais de sortie Internet supplémentaires 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, depuis l'appareil mobile d'un utilisateur)
Consultez les tarifs de sortie Internet de Google Cloud.Google Cloud
Consulter un exemple de tarification
Pour découvrir comment les coûts de facturation Cloud Firestore s'accumulent dans un exemple d'application réel, consultez l'exemple de facturation Cloud Firestore.
Gérer les dépenses
Pour éviter des frais inattendus sur votre facture, définissez des budgets mensuels et des alertes à l'aide de Google Cloud's billing console.
Pour surveiller votre Cloud Firestore utilisation, ouvrez l'onglet Cloud Firestore Utilisation dans la console Firebase. Utilisez le tableau de bord pour évaluer votre utilisation sur différentes périodes.