Ce guide de démarrage rapide vous explique comment configurer Cloud Firestore, ajouter des données, puis afficher les données que vous venez d'ajouter dans la console Firebase.
Cloud Firestore est compatible avec les SDK mobiles ou Web et les bibliothèques clientes de serveur :
Cloud Firestore est compatible avec les SDK pour Android, iOS, le Web et plus encore. Combinés à Cloud Firestore Security Rules et Firebase Authentication, les SDK pour mobile et Web sont compatibles avec les architectures d'applications sans serveur, dans lesquelles les clients se connectent directement à votre base de données Cloud Firestore.
Cloud Firestore est compatible avec les bibliothèques clientes de serveur pour C#, Go, Java, Node.js, PHP, Python et Ruby. Utilisez ces bibliothèques clientes pour configurer des environnements de serveur privilégiés avec un accès complet à votre base de données. Pour en savoir plus sur ces bibliothèques, consultez le guide de démarrage rapide pour les bibliothèques clientes du serveur.
Prompt d'IA pour l'assistance IA
Pour obtenir l'assistance IA, copiez le prompt ci-dessous dans votre agent de codage IA (comme Gemini dans Android Studio, Antigravity, Claude Code, Codex et Cursor). Vous pouvez personnaliser la requête et l'affiner avec votre agent. Pour obtenir des instructions d'installation détaillées, consultez Compétences d'agent Firebase.
Help me use Firebase in my app.
1. Make sure that **Firebase agent skills** are installed and updated. For Claude Code, Codex, or Cursor agents, help me install the Firebase plugin. For other agents, run `npx skills add firebase/agent-skills`. Always try to use **Firebase agent skills** for Firebase-related tasks.
2. Help me set up and use Firebase for the backend of my app. Set up Firestore database in **Standard edition**. Help me to choose the best location for my database instance.
Créer une base de données Cloud Firestore
Si vous ne l'avez pas déjà 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.
Dans le panneau de gauche, accédez à Bases de données et stockage > Firestore.
Cliquez sur Créer une base de données.
Sélectionnez un emplacement pour la base de données.
Si vous ne pouvez pas sélectionner d'emplacement, cela signifie que l'emplacement des ressources Google Cloud par défaut de votre projet a déjà été défini. Certaines ressources de votre projet (comme l'instance Cloud Firestore par défaut) partagent une dépendance d'emplacement commune. Leur emplacement peut être défini lors de la création du projet ou lors de la configuration d'un autre service qui partage cette dépendance d'emplacement.
Sélectionnez un mode de démarrage pour votre Cloud Firestore Security Rules :
- Mode test
Idéal pour faire vos premiers pas avec les bibliothèques clientes Web et mobiles, mais permet à quiconque de lire et d'écraser vos données. Après avoir effectué les tests, veillez à consulter la section Sécuriser vos données.
Pour commencer à utiliser le SDK Web, Apple 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'applications authentifiés (C#, Go, Java, Node.js, PHP, Python ou Ruby) peuvent toujours accéder à votre base de données.
Pour commencer à utiliser la bibliothèque cliente du serveur en C#, Go, Java, Node.js, PHP, Python ou Ruby, sélectionnez le mode Production.
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, l'API est également activée dans le gestionnaire d'API Cloud.
Configurer l'environnement de développement
Ajoutez les dépendances et les bibliothèques clientes requises pour votre application.
Web
- Suivez les instructions pour ajouter Firebase à votre application Web.
-
Le SDK Cloud Firestore est disponible sous forme de package npm.
Vous devez importer Firebase et Cloud Firestore.npm install firebase@13.0.0 --save
import { initializeApp } from "firebase/app"; import { getFirestore } from "firebase/firestore";
Web
- Suivez les instructions pour ajouter Firebase à votre application Web.
- Ajoutez les bibliothèques Firebase et Cloud Firestore à votre application :
Le SDK Cloud Firestore est également disponible sous forme de package npm.<script src="https://www.gstatic.com/firebasejs/13.0.0/firebase-app-compat.js"></script> <script src="https://www.gstatic.com/firebasejs/13.0.0/firebase-firestore-compat.js"></script>
Vous devrez exiger manuellement Firebase et Cloud Firestore.npm install firebase@13.0.0 --save
import firebase from "firebase/compat/app"; // Required for side-effects import "firebase/firestore";
iOS+
Suivez les instructions pour ajouter Firebase à votre application Apple.
Utilisez Swift Package Manager pour installer et gérer les dépendances Firebase.
- Dans Xcode, à partir de votre projet d'application ouvert, accédez à File > Swift Packages > Add Package Dependency (Fichier > Packages Swift > Ajouter une dépendance de package).
- Lorsque vous y êtes invité, ajoutez le dépôt du SDK des plates-formes Firebase pour Apple :
- Choisissez la bibliothèque Firestore.
- Lorsque vous avez terminé, Xcode commence à résoudre et à télécharger automatiquement vos dépendances en arrière-plan.
https://github.com/firebase/firebase-ios-sdk
Android
- Suivez les instructions pour ajouter Firebase à votre application Android.
- À l'aide de la BoM Android Firebase, déclarez la dépendance pour la bibliothèque Cloud Firestore pour Android dans le fichier Gradle de votre module (au niveau de l'application) (généralement
app/build.gradle.ktsouapp/build.gradle).dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:35.0.1")) // Declare the dependency for the Cloud Firestore library // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-firestore") }
Avec la nomenclature Firebase Android, votre application utilisera toujours des versions compatibles des bibliothèques Firebase Android.
(Alternative) Déclarez les dépendances de la bibliothèque Firebase sans utiliser la BoM.
Si vous choisissez de ne pas utiliser la Firebase BoM, vous devez spécifier chaque version de la bibliothèque Firebase dans sa ligne de dépendance.
Si vous utilisez plusieurs bibliothèques Firebase dans votre application, nous vous recommandons vivement d'utiliser la BoM pour gérer les versions des bibliothèques, ce qui garantit que toutes les versions sont compatibles.
dependencies { // Declare the dependency for the Cloud Firestore library // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-firestore:27.0.0") }
Vous recherchez un module de bibliothèque spécifique à Kotlin ? Depuis la version d'octobre 2023, les développeurs Kotlin et Java peuvent dépendre du module de bibliothèque principal (pour en savoir plus, consultez les questions fréquentes sur cette initiative).
Dart
- Si ce n'est pas déjà fait, configurez et initialisez Firebase dans votre application Flutter.
- À la racine de votre projet Flutter, exécutez la commande suivante pour installer le plug-in :
flutter pub add cloud_firestore
- Une fois l'opération terminée, recompilez votre application Flutter :
flutter run
- Facultatif : Améliorez les temps de compilation iOS et macOS en incluant le framework précompilé.
Actuellement, le SDK Firestore pour iOS dépend d'un code dont la compilation dans Xcode peut prendre plus de cinq minutes. Pour réduire considérablement les temps de compilation, vous pouvez utiliser une version précompilée en ajoutant cette ligne au bloc
target 'Runner' dode votre Podfile :target 'Runner' do use_frameworks! use_modular_headers! pod 'FirebaseFirestore', :git => 'https://github.com/invertase/firestore-ios-sdk-frameworks.git', :tag => 'IOS_SDK_VERSION' flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) target 'RunnerTests' do inherit! :search_paths end endRemplacez IOS_SDK_VERSION par la version du SDK Firebase pour iOS spécifiée dans le fichier
firebase_sdk_version.rbdefirebase_core. Si vous n'utilisez pas la dernière version defirebase_core, recherchez ce fichier dans le cache de votre package Pub local (généralement~/.pub-cache).Assurez-vous également d'avoir mis à niveau CocoaPods vers la version 1.9.1 ou ultérieure :
gem install cocoapods
Pour en savoir plus, consultez le problème sur GitHub.
C++
- Suivez les instructions pour ajouter Firebase à votre projet C++.
- Interface C++ pour Android.
- Dépendances Gradle. Ajoutez les éléments suivants à votre fichier Gradle (généralement
app/build.gradle) de votre module (au niveau de l'application) :android.defaultConfig.externalNativeBuild.cmake { arguments "-DFIREBASE_CPP_SDK_DIR=$gradle.firebase_cpp_sdk_dir" } apply from: "$gradle.firebase_cpp_sdk_dir/Android/firebase_dependencies.gradle" firebaseCpp.dependencies { // earlier entries auth firestore }
- Dépendances binaires. De même, la méthode recommandée pour obtenir les dépendances binaires consiste à ajouter ce qui suit à votre fichier
CMakeLists.txt:add_subdirectory(${FIREBASE_CPP_SDK_DIR} bin/ EXCLUDE_FROM_ALL) set(firebase_libs firebase_auth firebase_firestore firebase_app) # Replace the target name below with the actual name of your target, # for example, "native-lib". target_link_libraries(${YOUR_TARGET_NAME_HERE} "${firebase_libs}")
- Pour configurer l'intégration au bureau, consultez la section Ajouter Firebase à votre projet C++.
Unity
- Suivez les instructions pour ajouter Firebase à votre projet Unity.
- Utilisez l'interface Unity pour configurer votre projet afin de minimiser les builds Android.
- Cette option est disponible sous Player Settings > Android > Publishing Settings > Minify (Paramètres du lecteur > Android > Paramètres de publication > Réduire).
- Les options peuvent varier selon les versions d'Unity. Reportez-vous donc à la documentation Unity officielle et au guide de débogage de compilation Firebase Unity.
-
Si, après avoir activé la minimisation, le nombre de méthodes référencées dépasse toujours la limite, vous pouvez activer
multidexdans :-
mainTemplate.gradlesi l'option Custom Gradle Template (Modèle Gradle personnalisé) est activée sous Player Settings (Paramètres du lecteur) -
ou le fichier
build.gradleau niveau du module, si vous utilisez Android Studio pour compiler le projet exporté.
-
Vous devez minimiser la compilation pour éviter le message Error while merging dex archives.
(Facultatif) Prototyper et tester avec Firebase Local Emulator Suite
Pour les développeurs mobiles, avant de parler de la façon dont votre application écrit et lit des données dans Cloud Firestore, présentons un ensemble d'outils que vous pouvez utiliser pour prototyper et tester les fonctionnalités de Cloud Firestore : Firebase Local Emulator Suite. Si vous testez différents modèles de données, optimisez vos règles de sécurité ou cherchez le moyen le plus rentable d'interagir avec le backend, il peut être judicieux de travailler localement sans déployer de services actifs.
Un émulateur Cloud Firestore fait partie de la Local Emulator Suite, qui permet à votre application d'interagir avec le contenu et la configuration de votre base de données émulée, ainsi qu'avec les ressources de votre projet émulé (fonctions, autres bases de données et règles de sécurité).
L'utilisation de l'émulateur Cloud Firestore ne nécessite que quelques étapes :
- Ajouter une ligne de code à la configuration de test de votre application pour vous connecter à l'émulateur.
- Depuis la racine du répertoire de votre projet local, exécutez
firebase emulators:start. - Effectuer des appels à partir du code prototype de votre application à l'aide d'un SDK de plate-forme Cloud Firestore, comme d'habitude.
Un tutoriel détaillé impliquant Cloud Firestore et Cloud Functions est disponible. Vous devriez également consulter la présentation de Local Emulator Suite.
Initialiser Cloud Firestore
Initialisez une instance de Cloud Firestore :
Web
import { initializeApp } from "firebase/app"; import { getFirestore } from "firebase/firestore"; // TODO: Replace the following with your app's Firebase project configuration // See: https://support.google.com/firebase/answer/7015592 const firebaseConfig = { FIREBASE_CONFIGURATION }; // Initialize Firebase const app = initializeApp(firebaseConfig); // Initialize Cloud Firestore and get a reference to the service const db = getFirestore(app);
Remplacez FIREBASE_CONFIGURATION par l'firebaseConfig de votre application Web.
Pour conserver les données lorsque l'appareil perd sa connexion, consultez la documentation Activer les données hors connexion.
Web
import firebase from "firebase/app"; import "firebase/firestore"; // TODO: Replace the following with your app's Firebase project configuration // See: https://support.google.com/firebase/answer/7015592 const firebaseConfig = { FIREBASE_CONFIGURATION }; // Initialize Firebase firebase.initializeApp(firebaseConfig); // Initialize Cloud Firestore and get a reference to the service const db = firebase.firestore();
Remplacez FIREBASE_CONFIGURATION par l'firebaseConfig de votre application Web.
Pour conserver les données lorsque l'appareil perd sa connexion, consultez la documentation Activer les données hors connexion.
Swift
import FirebaseCore import FirebaseFirestore
FirebaseApp.configure() let db = Firestore.firestore()
Objective-C
@import FirebaseCore; @import FirebaseFirestore; // Use Firebase library to configure APIs [FIRApp configure];
FIRFirestore *defaultFirestore = [FIRFirestore firestore];
Kotlin
// Access a Cloud Firestore instance from your Activityval db = Firebase.firestore
Java
// Access a Cloud Firestore instance from your ActivityFirebaseFirestore db = FirebaseFirestore.getInstance();
Dart
db = FirebaseFirestore.instance;
C++
// Make sure the call to `Create()` happens some time before you call Firestore::GetInstance(). App::Create(); Firestore* db = Firestore::GetInstance();
Unity
using Firebase.Firestore; using Firebase.Extensions;
FirebaseFirestore db = FirebaseFirestore.DefaultInstance;
Ajouter des données
Cloud Firestore stocke les données dans des documents, qui sont stockés dans des collections. Cloud Firestore crée implicitement des collections et des documents la première fois que vous ajoutez des données au 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.
Web
import { collection, addDoc } from "firebase/firestore"; try { const docRef = await addDoc(collection(db, "users"), { first: "Ada", last: "Lovelace", born: 1815 }); console.log("Document written with ID: ", docRef.id); } catch (e) { console.error("Error adding document: ", e); }
Web
db.collection("users").add({ first: "Ada", last: "Lovelace", born: 1815 }) .then((docRef) => { console.log("Document written with ID: ", docRef.id); }) .catch((error) => { console.error("Error adding document: ", error); });
Swift
// Add a new document with a generated ID do { let ref = try await db.collection("users").addDocument(data: [ "first": "Ada", "last": "Lovelace", "born": 1815 ]) print("Document added with ID: \(ref.documentID)") } catch { print("Error adding document: \(error)") }
Objective-C
// Add a new document with a generated ID __block FIRDocumentReference *ref = [[self.db collectionWithPath:@"users"] addDocumentWithData:@{ @"first": @"Ada", @"last": @"Lovelace", @"born": @1815 } completion:^(NSError * _Nullable error) { if (error != nil) { NSLog(@"Error adding document: %@", error); } else { NSLog(@"Document added with ID: %@", ref.documentID); } }];
Kotlin
// Create a new user with a first and last name val user = hashMapOf( "first" to "Ada", "last" to "Lovelace", "born" to 1815, ) // Add a new document with a generated ID db.collection("users") .add(user) .addOnSuccessListener { documentReference -> Log.d(TAG, "DocumentSnapshot added with ID: ${documentReference.id}") } .addOnFailureListener { e -> Log.w(TAG, "Error adding document", e) }
Java
// Create a new user with a first and last name Map<String, Object> user = new HashMap<>(); user.put("first", "Ada"); user.put("last", "Lovelace"); user.put("born", 1815); // Add a new document with a generated ID db.collection("users") .add(user) .addOnSuccessListener(new OnSuccessListener<DocumentReference>() { @Override public void onSuccess(DocumentReference documentReference) { Log.d(TAG, "DocumentSnapshot added with ID: " + documentReference.getId()); } }) .addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { Log.w(TAG, "Error adding document", e); } });
Dart
// Create a new user with a first and last name final user = <String, dynamic>{ "first": "Ada", "last": "Lovelace", "born": 1815 }; // Add a new document with a generated ID db.collection("users").add(user).then((DocumentReference doc) => print('DocumentSnapshot added with ID: ${doc.id}'));
C++
// Add a new document with a generated ID Future<DocumentReference> user_ref = db->Collection("users").Add({{"first", FieldValue::String("Ada")}, {"last", FieldValue::String("Lovelace")}, {"born", FieldValue::Integer(1815)}}); user_ref.OnCompletion([](const Future<DocumentReference>& future) { if (future.error() == Error::kErrorOk) { std::cout << "DocumentSnapshot added with ID: " << future.result()->id() << std::endl; } else { std::cout << "Error adding document: " << future.error_message() << std::endl; } });
Unity
DocumentReference docRef = db.Collection("users").Document("alovelace"); Dictionary<string, object> user = new Dictionary<string, object> { { "First", "Ada" }, { "Last", "Lovelace" }, { "Born", 1815 }, }; docRef.SetAsync(user).ContinueWithOnMainThread(task => { Debug.Log("Added data to the alovelace document in the users collection."); });
À présent, ajoutez un autre document à la collection users. Notez que ce document contient une paire clé-valeur (deuxième prénom) qui n'est pas présente dans le premier document. Les documents d'une collection peuvent contenir différents ensembles d'informations.
Web
// Add a second document with a generated ID. import { addDoc, collection } from "firebase/firestore"; try { const docRef = await addDoc(collection(db, "users"), { first: "Alan", middle: "Mathison", last: "Turing", born: 1912 }); console.log("Document written with ID: ", docRef.id); } catch (e) { console.error("Error adding document: ", e); }
Web
// Add a second document with a generated ID. db.collection("users").add({ first: "Alan", middle: "Mathison", last: "Turing", born: 1912 }) .then((docRef) => { console.log("Document written with ID: ", docRef.id); }) .catch((error) => { console.error("Error adding document: ", error); });
Swift
// Add a second document with a generated ID. do { let ref = try await db.collection("users").addDocument(data: [ "first": "Alan", "middle": "Mathison", "last": "Turing", "born": 1912 ]) print("Document added with ID: \(ref.documentID)") } catch { print("Error adding document: \(error)") }
Objective-C
// Add a second document with a generated ID. __block FIRDocumentReference *ref = [[self.db collectionWithPath:@"users"] addDocumentWithData:@{ @"first": @"Alan", @"middle": @"Mathison", @"last": @"Turing", @"born": @1912 } completion:^(NSError * _Nullable error) { if (error != nil) { NSLog(@"Error adding document: %@", error); } else { NSLog(@"Document added with ID: %@", ref.documentID); } }];
Kotlin
// Create a new user with a first, middle, and last name val user = hashMapOf( "first" to "Alan", "middle" to "Mathison", "last" to "Turing", "born" to 1912, ) // Add a new document with a generated ID db.collection("users") .add(user) .addOnSuccessListener { documentReference -> Log.d(TAG, "DocumentSnapshot added with ID: ${documentReference.id}") } .addOnFailureListener { e -> Log.w(TAG, "Error adding document", e) }
Java
// Create a new user with a first, middle, and last name Map<String, Object> user = new HashMap<>(); user.put("first", "Alan"); user.put("middle", "Mathison"); user.put("last", "Turing"); user.put("born", 1912); // Add a new document with a generated ID db.collection("users") .add(user) .addOnSuccessListener(new OnSuccessListener<DocumentReference>() { @Override public void onSuccess(DocumentReference documentReference) { Log.d(TAG, "DocumentSnapshot added with ID: " + documentReference.getId()); } }) .addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { Log.w(TAG, "Error adding document", e); } });
Dart
// Create a new user with a first and last name final user = <String, dynamic>{ "first": "Alan", "middle": "Mathison", "last": "Turing", "born": 1912 }; // Add a new document with a generated ID db.collection("users").add(user).then((DocumentReference doc) => print('DocumentSnapshot added with ID: ${doc.id}'));
C++
db->Collection("users") .Add({{"first", FieldValue::String("Alan")}, {"middle", FieldValue::String("Mathison")}, {"last", FieldValue::String("Turing")}, {"born", FieldValue::Integer(1912)}}) .OnCompletion([](const Future<DocumentReference>& future) { if (future.error() == Error::kErrorOk) { std::cout << "DocumentSnapshot added with ID: " << future.result()->id() << std::endl; } else { std::cout << "Error adding document: " << future.error_message() << std::endl; } });
Unity
DocumentReference docRef = db.Collection("users").Document("aturing"); Dictionary<string, object> user = new Dictionary<string, object> { { "First", "Alan" }, { "Middle", "Mathison" }, { "Last", "Turing" }, { "Born", 1912 } }; docRef.SetAsync(user).ContinueWithOnMainThread(task => { Debug.Log("Added data to the aturing document in the users collection."); });
Lire des données
Utilisez l'outil de visualisation des données de la console Firebase pour vérifier rapidement que vous avez ajouté des données à Cloud Firestore.
Vous pouvez également utiliser la méthode "get" pour récupérer l'intégralité de la collection.
Web
import { collection, getDocs } from "firebase/firestore"; const querySnapshot = await getDocs(collection(db, "users")); querySnapshot.forEach((doc) => { console.log(doc.id, "=>", doc.data()); });
Web
db.collection("users").get().then((querySnapshot) => { querySnapshot.forEach((doc) => { console.log(doc.id, "=>", doc.data()); }); });
Swift
do { let snapshot = try await db.collection("users").getDocuments() for document in snapshot.documents { print("\(document.documentID) => \(document.data())") } } catch { print("Error getting documents: \(error)") }
Objective-C
[[self.db collectionWithPath:@"users"] getDocumentsWithCompletion:^(FIRQuerySnapshot * _Nullable snapshot, NSError * _Nullable error) { if (error != nil) { NSLog(@"Error getting documents: %@", error); } else { for (FIRDocumentSnapshot *document in snapshot.documents) { NSLog(@"%@ => %@", document.documentID, document.data); } } }];
Kotlin
db.collection("users") .get() .addOnSuccessListener { result -> for (document in result) { Log.d(TAG, "${document.id} => ${document.data}") } } .addOnFailureListener { exception -> Log.w(TAG, "Error getting documents.", exception) }
Java
db.collection("users") .get() .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() { @Override public void onComplete(@NonNull Task<QuerySnapshot> task) { if (task.isSuccessful()) { for (QueryDocumentSnapshot document : task.getResult()) { Log.d(TAG, document.getId() + " => " + document.getData()); } } else { Log.w(TAG, "Error getting documents.", task.getException()); } } });
Dart
await db.collection("users").get().then((event) { for (var doc in event.docs) { print("${doc.id} => ${doc.data()}"); } });
C++
Future<QuerySnapshot> users = db->Collection("users").Get(); users.OnCompletion([](const Future<QuerySnapshot>& future) { if (future.error() == Error::kErrorOk) { for (const DocumentSnapshot& document : future.result()->documents()) { std::cout << document << std::endl; } } else { std::cout << "Error getting documents: " << future.error_message() << std::endl; } });
Unity
CollectionReference usersRef = db.Collection("users"); usersRef.GetSnapshotAsync().ContinueWithOnMainThread(task => { QuerySnapshot snapshot = task.Result; foreach (DocumentSnapshot document in snapshot.Documents) { Debug.Log(String.Format("User: {0}", document.Id)); Dictionary<string, object> documentDictionary = document.ToDictionary(); Debug.Log(String.Format("First: {0}", documentDictionary["First"])); if (documentDictionary.ContainsKey("Middle")) { Debug.Log(String.Format("Middle: {0}", documentDictionary["Middle"])); } Debug.Log(String.Format("Last: {0}", documentDictionary["Last"])); Debug.Log(String.Format("Born: {0}", documentDictionary["Born"])); } Debug.Log("Read all data from the users collection."); });
Sécurisez vos données
Si vous utilisez le SDK pour les plates-formes Web, Android ou Apple, utilisez Firebase Authentication et Cloud Firestore Security Rules pour sécuriser vos données dans Cloud Firestore.
Voici quelques ensembles de règles de base que vous pouvez utiliser pour commencer. Vous pouvez modifier vos règles de sécurité depuis la console Firebase, dans l'onglet Bases de données et stockage > Firestore > Règles.
Authentification requise
// Allow read/write access to a document keyed by the user's UID
service cloud.firestore {
match /databases/{database}/documents {
match /users/{uid} {
allow read, write: if request.auth != null && request.auth.uid == uid;
}
}
}
Mode Production
// Deny read/write access to all users under any conditions
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if false;
}
}
}
Avant de déployer votre application Web, Android ou iOS en production, prenez également des mesures pour vous assurer que seuls vos clients d'application peuvent accéder à vos données Cloud Firestore. Consultez la documentation sur App Check.
Si vous utilisez l'un des SDK de serveur, utilisez Identity and Access Management (IAM) pour sécuriser vos données dans Cloud Firestore.
Regarder·un tutoriel vidéo
Pour obtenir des instructions détaillées sur l'utilisation des bibliothèques clientes mobiles Cloud Firestore, regardez l'un des tutoriels vidéo suivants :
Web
iOS+
Android
Vous trouverez d'autres vidéos sur la chaîne YouTube de Firebase.
Étapes suivantes
Approfondissez vos connaissances sur les sujets suivants :
- Ateliers de programmation : apprenez à utiliser Cloud Firestore dans une application réelle en suivant l'atelier de programmation pour Android, iOS ou le Web.
- Modèle de données : découvrez comment les données sont structurées dans Cloud Firestore, y compris les données hiérarchiques et les sous-collections.
- Ajouter des données : découvrez comment créer et mettre à jour des données dans Cloud Firestore.
- Obtenir des données : en savoir plus sur la récupération des données.
- Lancer des requêtes simples et des requêtes composées : en savoir plus sur l'exécution des requêtes simples et composées.
- Classer et limiter les requêtes : découvrez comment classer et limiter les données renvoyées par vos requêtes.
- Compétences d'agent Firebase : découvrez comment améliorer vos outils pour les développeurs d'IA pour exécuter des tâches plus efficacement et utiliser les Cloud Firestore bonnes pratiques (comme l'écriture de Cloud Firestore Security Rules).