Utiliser Cloud Firestore en mode Datastore
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Conçue pour le scaling automatique et les hautes performances, Firestore est une base de données de documents NoSQL qui simplifie le développement d'applications. Il s'agit de la dernière version de Datastore, qui introduit plusieurs améliorations.
Étant donné que Cloud Firestore en mode Datastore est optimisé pour les cas d'utilisation en tant que serveur et pour App Engine, nous vous recommandons d'utiliser ce mode pour les bases de données qui sont principalement utilisées par les applications App Engine. Firestore en mode natif est particulièrement utile pour les cas d'utilisation de notifications mobiles et en temps réel. Pour en savoir plus sur les modes de Firestore, consultez la page Choisir entre le mode natif et le mode Datastore.
Utiliser le mode Datastore avec App Engine
Pour utiliser le mode Datastore avec App Engine, procédez comme suit :
Si vous ne l'avez pas encore fait, créez une base de données et choisissez Firestore en mode Datastore.
Vous pouvez utiliser des bases de données Datastore existantes avec des applications App Engine. Celles-ci seront automatiquement mises à niveau vers Firestore en mode Datastore.
Dans votre application, déclarez Datastore en tant que dépendance à l'aide de la commande go get cloud.google.com/go/datastore
. Vous pouvez également déclarer des dépendances dans le fichier go.mod
de votre application. En savoir plus sur la spécification de dépendances.
Utilisez la bibliothèque cliente Google Cloud pour lire et écrire des entités, ainsi que pour interroger des données.
Configurer des index
Le mode Datastore utilise des index pour chaque requête de votre application. Les index sont mis à jour chaque fois qu'une entité est modifiée pour que les résultats soient renvoyés rapidement lorsque l'application génère une requête.
Le mode Datastore crée automatiquement des index de propriété unique à utiliser avec des types de requêtes simples. Pour les requêtes complexes incluant plusieurs propriétés, vous devez configurer des index composites dans le fichier index.yaml
de votre application.
Le serveur de développement App Engine met à jour votre fichier index.yaml
avec les index composites nécessaires à l'exécution de vos tests. De même, l'émulateur en mode Datastore peut générer des index lorsque vous exécutez des tests.
Vous pouvez également ajouter manuellement les index au fichier index.yaml
de votre application si vous n'exécutez pas de tests locaux ou si vos tests n'incluent pas de requêtes complexes.
Configurer les autorisations liées aux bases de données
Par défaut, votre application dispose de toutes les autorisations requises pour lire et écrire dans les bases de données Firestore et en mode Datastore de votre projet Google Cloud.
Pour gérer ces autorisations, chaque application App Engine utilise un compte de service par défaut qui offre un accès complet en lecture et en écriture au mode Datastore et aux bases de données Firestore se trouvant dans le même projet que l'application. Vous pouvez modifier les autorisations du compte de service par défaut, mais votre application risque de perdre l'accès si vous n'attribuez pas le rôle IAM disposant des autorisations requises.
Pour découvrir comment autoriser d'autres utilisateurs, applications ou projets à accéder à une base de données, consultez la page Accéder à votre base de données.
Utiliser l'émulateur en mode Datastore pour les tests locaux
Google Cloud CLI inclut un émulateur local de l'environnement de production en mode Datastore.
L'émulateur peut vous servir à développer et tester votre application en local. En outre, l'émulateur peut vous aider à générer des index pour votre instance de production en mode Datastore et à supprimer des index inutiles.
Si vous utilisez le serveur de développement local App Engine pour tester votre application, vous pouvez vous assurer que le serveur utilisera l'émulateur en mode Datastore en définissant l'option --support_datastore_emulator=true
lors du démarrage du serveur.
Si vous utilisez l'émulateur en mode Datastore, dev_appserver affiche :
... Using Cloud Datastore Emulator.
Tarifs, quotas et limites
Le mode Datastore propose un quota gratuit avec des limites journalières. Les comptes payants proposent un stockage ainsi que des opérations de lecture et d'écriture illimités. Pour en savoir plus, consultez la page Quotas relatifs à Datastore.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/04/21 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Difficile à comprendre","hardToUnderstand","thumb-down"],["Informations ou exemple de code incorrects","incorrectInformationOrSampleCode","thumb-down"],["Il n'y a pas l'information/les exemples dont j'ai besoin","missingTheInformationSamplesINeed","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/04/21 (UTC)."],[[["\u003cp\u003eFirestore, an upgraded version of Datastore, is a NoSQL document database designed for automatic scaling, high performance, and ease of application development.\u003c/p\u003e\n"],["\u003cp\u003eFirestore in Datastore mode is recommended for server-centric applications, particularly those on App Engine, while Native mode suits mobile and real-time notification use cases.\u003c/p\u003e\n"],["\u003cp\u003eApp Engine apps can leverage Datastore mode by declaring it as a dependency and using the Google Cloud Client Library for entity and data management.\u003c/p\u003e\n"],["\u003cp\u003eDatastore mode uses indexes for all queries, automatically creating single-property indexes and requiring the manual configuration of composite indexes in the \u003ccode\u003eindex.yaml\u003c/code\u003e file.\u003c/p\u003e\n"],["\u003cp\u003eThe Datastore mode emulator, included with the Google Cloud CLI, facilitates local testing and development and can aid in generating necessary indexes.\u003c/p\u003e\n"]]],[],null,["# Using Cloud Firestore in Datastore Mode\n\nFirestore is a NoSQL document database built for automatic scaling,\nhigh performance, and ease of application development. It is the newest version\nof Datastore and introduces several improvements over\nDatastore.\n\nBecause Firestore in [Datastore mode](/datastore/docs)\nis optimized for server use cases and for\nApp Engine, we recommend using Firestore in\nDatastore mode for databases that will be used primarily by\nApp Engine apps. Firestore in Native mode is most useful for\nmobile and real-time notification use cases. For more information about\nFirestore modes, see [Choosing between Native Mode and\nDatastore mode](/datastore/docs/firestore-or-datastore).\n\nUsing Datastore mode with App Engine\n------------------------------------\n\nTo use Datastore mode with App Engine:\n\n1. If you haven't already done so,\n [create a database](/datastore/docs/store-query-data#create_a_database)\n and choose Firestore in Datastore mode.\n\n You can use existing Datastore databases with App Engine\n apps. These existing databases [will be automatically upgraded to\n Firestore in Datastore\n mode](/datastore/docs/upgrade-to-firestore).\n\n\n 1. In your app, declare Datastore as a dependency\n\n by using the `go get cloud.google.com/go/datastore` command. Alternatively,\n you can declare dependencies in your app's `go.mod` file. Learn more\n [about specifying dependencies](/appengine/docs/legacy/standard/go111/specifying-dependencies).\n\n \u003cbr /\u003e\n\n 2. Use the Google Cloud Client Library to\n [read and write entities](/datastore/docs/concepts/entities)\n and to [query data](/datastore/docs/concepts/queries).\n\n Configuring indexes\n -------------------\n\n Datastore mode uses\n [indexes](/datastore/docs/concepts/indexes)\n for every query your application makes. The indexes are updated whenever an\n entity changes, so the results can be returned quickly when the app makes a\n query.\n\n Datastore mode automatically creates single-property indexes for use with\n simple types of queries. For complex queries that include multiple properties,\n you'll need to configure composite indexes in your app's `index.yaml` file.\n\n The App Engine development server will update your `index.yaml` file\n with the composite indexes needed to run your tests. Similarly, the\n [Datastore mode emulator can generate indexes](/datastore/docs/tools)\n when you run tests.\n\n You can also add the indexes to your app's\n `index.yaml` file [manually](/appengine/docs/legacy/standard/go111/configuring-datastore-indexes-with-index-yaml) if you do not run local\n tests or your tests do not include complex queries.\n\n Setting database permissions\n ----------------------------\n\n By default, your app has all the permissions required to read and write to\n Datastore mode and Firestore databases in your\n Google Cloud project.\n\n To manage these permissions, each App Engine app uses a [default service\n account](/appengine/docs/legacy/standard/go111/service-account)\n that gives full read and write access to Datastore mode\n and Firestore databases in the same project as the app. You can\n [change the permissions of the default service\n account](/appengine/docs/legacy/standard/go111/access-control#modify-service-account),\n but your app may lose access unless you assign an IAM role with the\n [required permissions](/datastore/docs/access/iam#required_permissions).\n\n For information about allowing other users, apps, or projects to access a database, see\n [Accessing your database](/datastore/docs/activate).\n\n Using the Datastore mode emulator for local testing\n ---------------------------------------------------\n\n The Google Cloud CLI includes a local [emulator of the production Datastore mode\n mode environment](/datastore/docs/tools/datastore-emulator). You can use the emulator to develop and test your application locally. In addition, the emulator can help you generate indexes for your production Datastore mode mode instance and delete unneeded indexes.\n\n \u003cbr /\u003e\n\n If you use the App Engine [local development\n server](/appengine/docs/legacy/standard/python/tools/using-local-server) to test your\n app, you can ensure that the server will use the Datastore mode\n emulator by setting the `--support_datastore_emulator=true` flag when starting\n the server.\n\n If you are using the Datastore mode emulator, dev_appserver will display: \n\n ... Using Cloud Datastore Emulator.\n\n Pricing, quotas, and limits\n ---------------------------\n\n Datastore mode offers a free quota with daily limits. Paid\n accounts offer unlimited storage, read, and write operations. More information\n is available on the [Datastore Quotas](/appengine/docs/legacy/standard/go111/quotas#Datastore) page."]]