Ce guide de démarrage rapide vous explique comment configurer Cloud Firestore, ajouter des données, puis utiliser des opérations de base ou des opérations de pipeline pour interroger les données que vous venez d'ajouter dans la console Firebase à l'aide des bibliothèques clientes du serveur pour Java, Node.js et Python.
Utilisez ces bibliothèques clientes pour configurer des environnements serveur privilégiés avec un accès complet à votre base de données.
Créer une base de données Cloud Firestore
Si vous ne l'avez pas encore fait, créez un projet Firebase : dans la console Firebase, cliquez sur Ajouter un projet, puis suivez les instructions à l'écran pour créer un projet Firebase ou ajouter des services Firebase à un projet Google Cloud existant.
Ouvrez votre projet dans la console Firebase. Dans le panneau de gauche, développez Créer, puis sélectionnez Base de données Firestore.
Cliquez sur Créer une base de données.
Sélectionnez Enterprise (Entreprise) pour le mode de base de données.
Sélectionnez Firestore en mode natif pour le mode de fonctionnement, qui est compatible avec les opérations de base et de pipeline.
Sélectionnez un emplacement pour la base de données.
Sélectionnez un mode de départ pour votre Cloud Firestore Security Rules :
- Mode test
Convient pour se familiariser avec les bibliothèques clientes mobiles et Web, mais permet à tout le monde de lire et d'écraser les données. Lorsque vous aurez terminé les tests, passez en revue la section Sécuriser les données.
Pour commencer à utiliser le SDK Web, Apple Platforms ou Android, sélectionnez le mode test.
- Mode production
Refuse tous les accès en lecture et en écriture des clients mobiles et Web. Vos serveurs d'application authentifiés (Node.js, Python, Java) peuvent toujours accéder à votre base de données.
Votre ensemble initial de Cloud Firestore Security Rules s'appliquera à votre base de données Cloud Firestore par défaut. Si vous créez plusieurs bases de données pour votre projet, vous pouvez déployer Cloud Firestore Security Rules pour chacune d'elles.
Cliquez sur Créer.
Lorsque vous activez Cloud Firestore, cela active également l'API dans Cloud API Manager.
Configurer l'environnement de développement
Ajoutez les dépendances et les bibliothèques clientes requises pour votre application.
Node.js
-
Ajoutez le SDK Admin Firebase à votre application :
npm install firebase-admin --save
- Suivez les instructions ci-dessous pour initialiser Cloud Firestore avec les identifiants appropriés dans votre environnement.
Python
- Ajoutez le SDK Admin Firebase à votre application Python :
pip install --upgrade firebase-admin
- Suivez les instructions ci-dessous pour initialiser Cloud Firestore avec les identifiants appropriés dans votre environnement.
Java
- Ajoutez le SDK Admin Firebase à votre application :
-
Avec Gradle :
implementation 'com.google.firebase:firebase-admin:9.7.1'
-
Avec Maven :
<dependency> <groupId>com.google.firebase</groupId> <artifactId>firebase-admin</artifactId> <version>9.7.1</version> </dependency>
-
Avec Gradle :
- Suivez les instructions ci-dessous pour initialiser Cloud Firestore avec les identifiants appropriés dans votre environnement.
Initialiser Cloud Firestore
Initialisez une instance de Cloud Firestore :
Node.js
Le SDK Cloud Firestore est initialisé de différentes manières selon votre environnement. Vous trouverez ci-dessous les méthodes les plus courantes. Pour obtenir une référence complète, consultez Initialiser le SDK Admin.-
Initialiser sur Cloud Functions
const { initializeApp, applicationDefault, cert } = require('firebase-admin/app'); const { getFirestore, Timestamp, FieldValue, Filter } = require('firebase-admin/firestore');
initializeApp(); const db = getFirestore();
-
Initialiser sur Google Cloud
const { initializeApp, applicationDefault, cert } = require('firebase-admin/app'); const { getFirestore, Timestamp, FieldValue, Filter } = require('firebase-admin/firestore');
initializeApp({ credential: applicationDefault() }); const db = getFirestore();
-
Initialiser sur votre propre serveur
Pour utiliser le SDK Admin Firebase sur votre propre serveur (ou dans tout autre environnement Node.js), utilisez un compte de service. Dans la console Google Cloud, accédez à IAM et administration > Comptes de service. Générez une clé privée et enregistrez le fichier JSON. Utilisez ensuite le fichier pour initialiser le SDK :
const { initializeApp, applicationDefault, cert } = require('firebase-admin/app'); const { getFirestore, Timestamp, FieldValue, Filter } = require('firebase-admin/firestore');
const serviceAccount = require('./path/to/serviceAccountKey.json'); initializeApp({ credential: cert(serviceAccount) }); const db = getFirestore();
Python
Le SDK Cloud Firestore est initialisé de différentes manières selon votre environnement. Vous trouverez ci-dessous les méthodes les plus courantes. Pour obtenir une référence complète, consultez Initialiser le SDK Admin.import firebase_admin from firebase_admin import firestore # Application Default credentials are automatically created. app = firebase_admin.initialize_app() db = firestore.client()
Vous pouvez également utiliser un identifiant par défaut d'application existant pour initialiser le SDK.
import firebase_admin from firebase_admin import credentials from firebase_admin import firestore # Use the application default credentials. cred = credentials.ApplicationDefault() firebase_admin.initialize_app(cred) db = firestore.client()
Pour utiliser le SDK Admin Firebase sur votre propre serveur, utilisez un compte de service.
Dans la console Google Cloud, accédez à IAM et administration > Comptes de service. Générez une clé privée et enregistrez le fichier JSON. Utilisez ensuite le fichier pour initialiser le SDK :
import firebase_admin from firebase_admin import credentials from firebase_admin import firestore # Use a service account. cred = credentials.Certificate('path/to/serviceAccount.json') app = firebase_admin.initialize_app(cred) db = firestore.client()
Java
Le SDK Cloud Firestore est initialisé de différentes manières selon votre environnement. Vous trouverez ci-dessous les méthodes les plus courantes. Pour obtenir une référence complète, consultez Initialiser le SDK Admin.import com.google.auth.oauth2.GoogleCredentials; import com.google.cloud.firestore.Firestore; import com.google.firebase.FirebaseApp; import com.google.firebase.FirebaseOptions; // Use the application default credentials GoogleCredentials credentials = GoogleCredentials.getApplicationDefault(); FirebaseOptions options = new FirebaseOptions.Builder() .setCredentials(credentials) .setProjectId(projectId) .build(); FirebaseApp.initializeApp(options); Firestore db = FirestoreClient.getFirestore();
Pour utiliser le SDK Admin Firebase sur votre propre serveur, utilisez un compte de service.
Dans la console Google Cloud, accédez à IAM et administration > Comptes de service. Générez une clé privée et enregistrez le fichier JSON. Utilisez ensuite le fichier pour initialiser le SDK :
import com.google.auth.oauth2.GoogleCredentials; import com.google.cloud.firestore.Firestore; import com.google.firebase.FirebaseApp; import com.google.firebase.FirebaseOptions; // Use a service account InputStream serviceAccount = new FileInputStream("path/to/serviceAccount.json"); GoogleCredentials credentials = GoogleCredentials.fromStream(serviceAccount); FirebaseOptions options = new FirebaseOptions.Builder() .setCredentials(credentials) .build(); FirebaseApp.initializeApp(options); Firestore db = FirestoreClient.getFirestore();
Ajouter des données à l'aide des opérations Core
Pour explorer les opérations Core et les opérations de pipeline permettant d'interroger des données, ajoutez des données à votre base de données à l'aide des opérations Core.
Cloud Firestore stocke les données dans des documents, qui sont eux-mêmes stockés dans des collections. Cloud Firestore crée implicitement les collections et les documents nécessaires la première fois qu'une donnée est ajoutée à un document. Vous n'avez pas besoin de créer explicitement les collections ni les documents.
Créez une collection et un document à l'aide de l'exemple de code ci-dessous.
Node.js
Java
Python
Lire des données à l'aide d'opérations de base
Utilisez la visionneuse de données de la console Firebase pour vérifier rapidement que vous avez bien ajouté des données à Cloud Firestore.
Vous pouvez également utiliser la méthode "get" pour récupérer l'ensemble de la collection.
Node.js
Python
users_ref = db.collection("users") docs = users_ref.stream() for doc in docs: print(f"{doc.id} => {doc.to_dict()}")
Java
Lire des données à l'aide d'opérations de pipeline
Vous pouvez désormais comparer l'expérience des requêtes de pipeline à celle des requêtes principales.
Node.js
const readDataPipeline = db.pipeline() .collection("users"); // Execute the pipeline and handle the result try { const querySnapshot = await readDataPipeline.execute(); querySnapshot.results.forEach((result) => { console.log(`${result.id} => ${result.data()}`); }); } catch (error) { console.error("Error getting documents: ", error); }
Python
pipeline = client.pipeline().collection("users") for result in pipeline.execute(): print(f"{result.id} => {result.data()}")
Java
Pipeline pipeline = firestore.pipeline().collection("users"); ApiFuture<Pipeline.Snapshot> future = pipeline.execute(); for (com.google.cloud.firestore.PipelineResult result : future.get().getResults()) { System.out.println(result.getId() + " => " + result.getData()); } // or, asynchronously pipeline.execute( new ApiStreamObserver<com.google.cloud.firestore.PipelineResult>() { @Override public void onNext(com.google.cloud.firestore.PipelineResult result) { System.out.println(result.getId() + " => " + result.getData()); } @Override public void onError(Throwable t) { System.err.println(t); } @Override public void onCompleted() { System.out.println("done"); } });
Étapes suivantes
Approfondissez vos connaissances sur les opérations Core et de pipeline en consultant les sujets suivants :
- Assurez-vous de bien comprendre les différences entre les opérations principales et celles de pipeline.
- En savoir plus sur l'interrogation avec les opérations de base
- En savoir plus sur l'envoi de requêtes avec les opérations de pipeline