La base de données en temps réel de Firebase
Sommaire
- 1- Objectif
- 2- Présentation
- 3- Les principales capacités de la base de données en temps réel de firebase
- 4- Configuration et installation de bases de données en temps réel
- 4.1- Configuration du projet Firebase
- 4.2- Ajout de dépendances Firebase :
- 4.3- Initialisation de la base de données en temps réel Firebase :
- 5- Écriture dans la base de données en temps réel de Firebase
- 5.1- Initialisation de la base de données
- 5.1.1- Initialisation de Firebase
- 5.1.2- Créer une référence à la base de données
- 5.2- Écriture dans la base de données
- 5.2.1- Écrire une simple valeur
- 5.2.2- Écrire un objet (map)
- 5.2.3- Ajouter un nouvel élément avec une clé générée automatiquement (push)
- 5.2.4- Cours Flutter
La base de données en temps réel de Firebase
-
Objectif
- Firebase Real-time Database
-
Présentation
- La base de données temps réel Firebase est une base de données hébergée dans le cloud, stockant les données au format JSON. Les données sont synchronisées en temps réel avec chaque client connecté. Tous nos clients partagent une instance de base de données temps réel et reçoivent automatiquement les mises à jour avec les données les plus récentes lorsque nous développons des applications multiplateformes avec nos SDK iOS et JavaScript.
- La base de données Firebase Realtime est une base de données NoSQL permettant de stocker et de synchroniser les données entre nos utilisateurs en temps réel.
- Il s’agit d’un objet JSON volumineux que les développeurs peuvent gérer en temps réel. Grâce à une API unique, la base de données Firebase fournit à l’application la valeur actuelle des données et leurs mises à jour. La synchronisation en temps réel permet à nos utilisateurs d’accéder facilement à leurs données depuis n’importe quel appareil, web ou mobile.
- La base de données en temps réel facilite la collaboration entre nos utilisateurs. Elle est fournie avec des SDK mobiles et web, qui nous permettent de développer notre application sans serveur. Lorsque nos utilisateurs sont hors ligne, les SDK de la base de données en temps réel utilisent le cache local de l’appareil pour traiter et stocker les modifications. Les données locales sont automatiquement synchronisées dès la connexion de l’appareil.
-
Les principales capacités de la base de données en temps réel de firebase
- Une base de données en temps réel est capable de fournir tous les services, en ligne et hors ligne. Ces fonctionnalités incluent l’accessibilité depuis l’appareil client, la mise à l’échelle sur plusieurs bases de données, et bien plus encore.
- En temps réel
- La base de données en temps réel Firebase utilise la synchronisation des données plutôt que les requêtes HTTP. Tout appareil connecté reçoit les mises à jour en quelques millisecondes. Elle ne prend pas en compte le code réseau et offre des expériences collaboratives et immersives.
- Hors ligne
- Le SDK de base de données Firebase conserve nos données sur le disque, ce qui permet aux applications Firebase de rester réactives même hors ligne. L’appareil client reçoit les modifications manquantes une fois la connexion rétablie.
- Accessible depuis les appareils clients
- Aucun serveur d’application n’est nécessaire pour accéder à la base de données Firebase Real-Time. Nous pouvons y accéder directement depuis un appareil mobile ou un navigateur web. La validation et la sécurité des données sont assurées par les règles de sécurité Firebase Real-Time Database, des règles basées sur des expressions exécutées lors de la lecture ou de l’écriture des données.
- Mise à l’échelle sur plusieurs bases de données
- Grâce à l’offre Firebase Real-Time Database sur Blaze, nous pouvons répondre aux besoins en données de notre application en répartissant nos données sur plusieurs instances de base de données au sein d’un même projet Firebase.
- L’authentification est simplifiée grâce à Firebase Authentication sur notre projet et les utilisateurs de nos instances de base de données sont authentifiés.
- L’accès aux données de chaque base de données est contrôlé grâce à des règles Firebase Real-Time personnalisées, disponibles pour chaque instance.
-
Configuration et installation de bases de données en temps réel
-
Configuration du projet Firebase
- Accédez à la console Firebase et créez un nouveau projet.
- Avant de pouvoir utiliser l’un des services cloud de Google, vous devez configurer un projet sur la console Firebase . Ensuite, vous pouvez créer votre base de données en temps réel et la gérer directement depuis la console.
- Accédez à console.firebase.google.com et connectez-vous à l’aide de votre compte Gmail.
- Cliquez sur le bouton « créer un projet » puis sur le bouton continuer.
- Cliquez sur « Ajouter Firebase à votre application Flutter » et suivez les instructions d’installation. Vous obtiendrez ainsi un fichier
google-services.json
à placer dans le répertoireandroid/app de votre projet Flutter. -
Ajout de dépendances Firebase :
- Ouvrez votre projet Flutter et accédez au pubspec.yamlfichier.
- Ajoutez les dépendances suivantes sous la dependenciessection :
- Exécutez flutter pub getpour récupérer les dépendances nouvellement ajoutées.
-
Initialisation de la base de données en temps réel Firebase :
- Ouvrez le fichier
main.dart
dans votre projet Flutter. - Importez les packages Firebase et Flutter nécessaires :
-
Écriture dans la base de données en temps réel de Firebase
-
Initialisation de la base de données
- Pour écrire dans Firebase Realtime Database, nous devons d’abord obtenir une instance de la base de données, puis référencer l’emplacement où nous voulons écrire.
-
Initialisation de Firebase
- Dans lib/main.dart :
-
Créer une référence à la base de données
-
Écriture dans la base de données
-
Écrire une simple valeur
-
Écrire un objet (map)
-
Ajouter un nouvel élément avec une clé générée automatiquement (push)
dépendances :
flutter :
sdk : flutter
firebase_core : ^1.4.0
firebase_database : ^11.0.0
importer 'package:flutter/material.dart' ;
importer 'package:firebase_core/firebase_core.dart' ;
importer 'package:firebase_database/firebase_database.dart' ;
Initialiser Firebase dans la main()fonction :
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
runApp(MyApp());
}
import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/material.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized(); // Nécessaire pour l'initialisation
await Firebase.initializeApp(); // Initialise Firebase
runApp(MyApp());
}
// Référence à la racine de la base de données
final DatabaseReference _database = FirebaseDatabase.instance.ref();
// Référence à un nœud spécifique (ex: "messages")
final DatabaseReference _messageRef = _database.child('messages');
import 'package:firebase_database/firebase_database.dart';
final database = FirebaseDatabase.instance.reference();
// Exemple d'écriture
void writeSimpleValue() {
database.child('message').set('Bonjour le monde!');
}
set() sert à écrire une valeur (écrase si quelque chose existe déjà).
void writeObject() {
Map utilisateur = {
'nomUtilisateur': 'Jean',
'email': 'jean@example.com',
};
database.child('utilisateurs').child('userId123').set(utilisateur);
}
void pushNewObject() {
Map utilisateur = {
'nomUtilisateur': 'Sami',
'email': 'sami@example.com',
};
database.child('utilisateurs').push().set(utilisateur);
}
push() crée une clé unique automatiquement.