SDK Web Cloud Firestore Lite

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, car elle vous permet de créer des applications réactives qui fonctionnent indépendamment de la latence du réseau ou de la connectivité Internet. Cependant, les SDK riches en fonctionnalités ont un coût en termes de taille. Que propose Firebase pour les applications qui ne doivent utiliser que des opérations de création, de lecture, de modification et de suppression de base, et qui n'ont pas besoin de prise en charge hors connexion gérée ?

Solution: Firestore Lite

Firestore Lite est un SDK Firestore léger et autonome, basé sur REST uniquement, qui prend en charge l'extraction de documents uniques, l'exécution de requêtes et la mise à jour de documents, à une fraction de la taille du SDK Web standard. Firestore Lite ne prend pas en charge la compensation de latence, le 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 est un excellent compromis.

Importer Firestore Lite

Firestore Lite est disponible via npm dans le cadre du SDK modulaire. Il est donc entièrement modulaire et peut être supprimé de l'arborescence.

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 des raisons de taille et de vitesse, Firestore Lite ne prend pas en charge les fonctionnalités suivantes du SDK Firestore standard:

  • Gestionnaires d'événements DocumentSnapshot La méthode onSnapshot et les objets DocumentChange, SnapshotListenerOptions, SnapshotMetadata, SnapshotOptions et Unsubscribe ne sont pas inclus.
  • Assistants de persistance Les méthodes enableIndexedDBPersistence, enableMultiTabIndexedDbPersistence et clearIndexedDbPersistence ne sont pas incluses.
  • Bundles Firestore La méthode loadBundle et les méthodes associées, ainsi que les objets LoadBundleTask et LoadBundleTaskProgress 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 get et update habituels. Les cas d'utilisation de l'ajout de données et de 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 le coût inférieur de Firestore Lite. En règle générale, prenez en compte les 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 temps réel 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.