Firestore est une bonne solution de base de données évolutive pour synchroniser les données entre les clients Web.
Pour de nombreuses applications, la compatibilité hors connexion gérée de Firestore est particulièrement importante, car elle vous permet de créer des applications responsives qui fonctionnent indépendamment de la latence du réseau ou de la connectivité Internet. Cependant, les SDK riches en fonctionnalités sont volumineux. Que propose Firebase pour les applications qui n'ont besoin que d'opérations de base de création, de lecture, de mise à jour et de suppression, et qui n'ont pas besoin d'une compatibilité hors connexion gérée ?
Solution : Firestore Lite
Firestore Lite est un SDK Firestore léger, autonome et REST uniquement, qui permet de récupérer des documents uniques, d'exécuter des requêtes et de mettre à jour des documents, pour une fraction de la taille du SDK Web standard. Firestore Lite omet la compensation de latence, la mise en cache hors connexion, la reprise des requêtes et les écouteurs d'instantanés. Toutefois, pour des cas d'utilisation particuliers, la réduction de la taille de la bibliothèque et du temps de démarrage constitue un compromis idéal.
Importer Firestore Lite
Firestore Lite est disponible via npm dans le SDK modulaire. Il est donc entièrement modulaire et compatible avec le tree shaking.
Le style d'importation suivant est accepté.
import { initializeApp } from "firebase/app";
import {
getFirestore,
getDoc,
updateDoc
} from 'firebase/firestore/lite';
Fonctionnalités d'API non compatibles avec Firestore Lite
Pour des raisons de taille et de vitesse, Firestore Lite omet les fonctionnalités suivantes du SDK Firestore standard :
- Gestionnaires d'événements DocumentSnapshot. La méthode
onSnapshotet les objetsDocumentChange,SnapshotListenerOptions,SnapshotMetadata,SnapshotOptionsetUnsubscribene sont pas inclus. - Outils d'aide à la persistance. Les méthodes
enableIndexedDBPersistence,enableMultiTabIndexedDbPersistenceetclearIndexedDbPersistencene sont pas incluses. - Lots Firestore. La méthode
loadBundleet les méthodes associées, ainsi que les objetsLoadBundleTasketLoadBundleTaskProgress, ne sont pas inclus.
Implémenter des récupérations, des requêtes et des mises à jour de documents
Après avoir importé Firestore Lite, vous pouvez effectuer tous les appels d'API habituels pour obtenir et mettre à jour des données. Les cas d'utilisation pour l'ajout de données et l'obtention de données s'appliquent tous.
import {
getFirestore,
getDoc,
updateDoc,
doc
} from '@firebase/firestore/lite';
const firestore = getFirestore(app);
const docRef = doc(firestore, 'collection/doc');
const docSnap = await getDoc(docRef);
await updateDoc(docRef, "field", 'value');
Quand utiliser Firestore Lite ?
Il peut être difficile de décider quand abandonner les fonctionnalités de persistance et de mise en cache hors connexion du SDK Firestore standard. Vous devez comprendre ces fonctionnalités avant de décider de les abandonner pour réduire les frais généraux de Firestore Lite. En général, tenez compte des facteurs suivants lorsque vous décidez d'utiliser Firestore Lite :
- État en ligne : Firestore Lite est adapté aux applications qui n'ont pas besoin d'infos en direct et qui disposent d'une connectivité.
- Contraintes de taille : Firestore Lite est idéal si vous souhaitez réduire la taille globale de votre bundle JavaScript.