Afficher les données Firestore avec StreamProvider
Google Firebase
-
Objectif
-
Présentation
-
Structure du tutoriel
- Présentation de la base de données
- Installation des packages
- Création du modèle : user_model.dart
- Service Firebase : firebase_services.dart
- Configuration de StreamProvider
- Interface utilisateur
- Ajout de données avec un bouton flottant
-
Présentation de la base de données
- Le forfait gratuit Firebase est limité à 50 connexions et 100 Mo de stockage.
- Firestore est une base NoSQL hiérarchique, organisée comme suit :
- 1. Collection
- Une collection est un regroupement de documents. Elle a un nom et contient des documents, mais pas directement des champs.
- 2. Document
- Un document est une entrée unique dans une collection, identifiée par un ID (tu peux le définir ou le laisser Firestore en générer un).
- Un document peut contenir :
- des champs (comme name, age, email, etc.)
- des sous-collections
- 3. Champs
- Les champs sont des paires clé-valeur. Ce sont les vraies données contenues dans un document.
- Exemple :
- 4. Sous-collection
- Une sous-collection est une collection imbriquée dans un document.
- Elle permet de modéliser des relations complexes (comme un utilisateur → plusieurs commandes).
- Exemple complet en code :
-
Les services offerts par Firebase
Structure de base de Firestore
-
📁 Collection
└─ 📄 Document
├─ 🧾 Champs (name, age, etc.)
└─ 📂 Sous-collection
└─ 📄 Document
Exemple :
FirebaseFirestore.instance.collection('users');
Exemple :
FirebaseFirestore.instance.collection('users').doc('userId123');
{
"name": "Ali",
"age": 21
}
Exemple :
-
📁 users
└─ 📄 userId123
├─ name: « Ali »
└─ 📂 orders
└─ 📄 order1
└─ price: 200
Et en code Flutter :
FirebaseFirestore.instance
.collection('users')
.doc('userId123')
.collection('orders');
FirebaseFirestore.instance
.collection('users') // collection
.doc('userId123') // document
.collection('orders') // sous-collection
.doc('order1') // document dans la sous-collection
.set({
'price': 200,
'status': 'paid'
});