Firestore est une bonne solution de base de données évolutive pour synchroniser les données sur les clients Web.
Pour de nombreuses applications, la prise en charge hors ligne gérée de Firestore est particulièrement importante, car elle vous permet de créer des applications réactives qui fonctionnent quelle que soit la latence du réseau ou la connectivité Internet. Mais les SDK riches en fonctionnalités ont un coût. 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 prise en charge hors ligne gérée ?
Solution : Firestore Lite
Firestore Lite est un SDK Firestore léger et autonome uniquement REST qui prend en charge la récupération de documents uniques, l'exécution de requêtes et les mises à jour de documents, à une fraction de la taille standard du SDK Web. Firestore Lite omet la compensation de latence, la mise en cache hors ligne, la reprise des requêtes et les écouteurs d'instantanés, mais pour des cas d'utilisation particuliers, les réductions de la taille de la bibliothèque et du temps de démarrage constituent un excellent compromis.
Importer Firestore Lite
Firestore Lite est disponible via npm dans le cadre du SDK modulaire . Il est ainsi entièrement modulaire et arborescent.
Le style d'importation suivant est pris en charge.
import { initializeApp } from "firebase/app";
import {
getFirestore,
getDoc,
updateDoc
} from 'firebase/firestore/lite';
Fonctionnalités API non prises en charge par Firestore Lite
Pour des raisons de taille et de vitesse, Firestore Lite omet ces fonctionnalités du SDK Firestore standard :
- Gestionnaires d'événements DocumentSnapshot . La méthode
onSnapshot
etDocumentChange
,SnapshotListenerOptions
,SnapshotMetadata
,SnapshotOptions
etUnsubscribe
ne sont pas inclus. - Aides à la persévérance . Les méthodes
enableIndexedDBPersistence
,enableMultiTabIndexedDbPersistence
etclearIndexedDbPersistence
ne sont pas incluses. - Offres groupées Firestore . La méthode
loadBundle
et les méthodes associées, ainsi que les objetsLoadBundleTask
etLoadBundleTaskProgress
ne sont pas inclus.
Implémenter les récupérations, requêtes et mises à jour de documents
Après avoir importé Firestore Lite, vous pouvez effectuer tous les appels d'obtention et de mise à jour d'API familiers. Les cas d'utilisation pour l'ajout 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 ligne du SDK Firestore standard. Vous devez comprendre ces fonctionnalités avant de décider de les échanger contre les frais généraux inférieurs de Firestore Lite. En général, tenez compte de ces facteurs lorsque vous décidez d'utiliser Firestore Lite :
- Statut en ligne - Firestore Lite convient aux applications qui n'ont pas besoin de mises à jour 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.