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 prise en charge hors connexion gérée de Firestore est particulièrement importante. Elle vous permet de créer des applications réactives qui fonctionnent quelle que soit la latence du réseau ou la connexion Internet. Mais les SDK riches en fonctionnalités ont un coût en termes de taille. Que propose Firebase pour les applications qui n'ont besoin que d'utiliser des opérations de création, de lecture, de mise à jour et de suppression de base, et qui n'ont pas besoin d'une gestion de la compatibilité hors connexion ?
Solution : Firestore Lite
Firestore Lite est un SDK Firestore autonome et léger, qui ne prend en charge que les requêtes REST. Il permet de récupérer des documents individuels, d'exécuter des requêtes et de mettre à jour des documents, pour une taille bien inférieure à celle du SDK Web habituel. Firestore Lite omet la compensation de la latence, la mise en cache hors connexion, la reprise des requêtes et les écouteurs d'instantanés, mais pour certains cas d'utilisation, la réduction de la taille de la bibliothèque et du temps de démarrage constitue un excellent compromis.
Importer Firestore Lite
Firestore Lite est disponible via npm dans le SDK modulaire. Elle est donc entièrement modulaire et peut être élaguée.
Le style d'importation suivant est accepté.
import { initializeApp } from "firebase/app";
import {
getFirestore,
getDoc,
updateDoc
} from 'firebase/firestore/lite';
Fonctionnalités de l'API non compatibles avec Firestore Lite
Pour optimiser la taille et la vitesse, Firestore Lite omet les fonctionnalités suivantes du SDK Firestore standard :
- Gestionnaires d'événements DocumentSnapshot. La méthode
onSnapshot
et les objetsDocumentChange
,SnapshotListenerOptions
,SnapshotMetadata
,SnapshotOptions
etUnsubscribe
ne sont pas inclus. - Assistance pour la persistance Les méthodes
enableIndexedDBPersistence
,enableMultiTabIndexedDbPersistence
etclearIndexedDbPersistence
ne sont pas incluses. - Bundles 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, les requêtes et les mises à jour de documents
Après avoir importé Firestore Lite, vous pouvez effectuer tous les appels d'API get et update habituels. Les cas d'utilisation pour ajouter des données et obtenir des 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 mise en cache et de persistance hors connexion du SDK Firestore standard. Vous devez comprendre ces fonctionnalités avant de décider de les échanger contre la surcharge inférieure 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 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.