SDK web Cloud Firestore Lite

Firestore è una buona soluzione di database scalabile per mantenere i dati sincronizzati tra i client web.

Per molte app, il supporto offline gestito di Firestore è particolarmente importante, in quanto consente di creare app reattive che funzionano indipendentemente dalla latenza di rete o dalla connessione a internet. Tuttavia, gli SDK ricchi di funzionalità hanno un costo in termini di dimensioni. Cosa offre Firebase per le app che devono utilizzare solo operazioni di base di creazione, lettura, aggiornamento ed eliminazione e non necessitano di supporto offline gestito?

Soluzione: Firestore Lite

Firestore Lite è un SDK Firestore autonomo, leggero e solo REST che supporta recuperi di singoli documenti, esecuzione di query e aggiornamenti di documenti, con una dimensione ridotta rispetto all'SDK web normale. Firestore Lite omette la compensazione della latenza, la memorizzazione nella cache offline, il ripristino delle query e i listener di snapshot, ma per casi d'uso particolari, le riduzioni delle dimensioni della libreria e del tempo di avvio rappresentano un ottimo compromesso.

Importa Firestore Lite

Firestore Lite è disponibile tramite npm nell'ambito dell'SDK modulare. È quindi completamente modulare e tree-shakeable.

È supportato il seguente stile di importazione.

import { initializeApp } from "firebase/app";
import {
   getFirestore,
   getDoc,
   updateDoc
} from 'firebase/firestore/lite';

Funzionalità dell'API non supportate da Firestore Lite

Per dimensioni e velocità, Firestore Lite omette queste funzionalità dall'SDK Firestore standard:

  • Gestori di eventi DocumentSnapshot. Il metodo onSnapshot e gli oggetti DocumentChange, SnapshotListenerOptions, SnapshotMetadata, SnapshotOptions e Unsubscribe non sono inclusi.
  • Helper di persistenza. I metodi enableIndexedDBPersistence, enableMultiTabIndexedDbPersistence e clearIndexedDbPersistence non sono inclusi.
  • Bundle Firestore. Il metodo loadBundle e i metodi correlati, nonché gli oggetti LoadBundleTask e LoadBundleTaskProgress, non sono inclusi.

Implementa recuperi, query e aggiornamenti dei documenti

Dopo aver importato Firestore Lite, puoi effettuare tutte le chiamate di recupero e aggiornamento dell'API che già conosci. I casi d'uso per l'aggiunta di dati e il recupero di dati sono tutti applicabili.

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');

Quando utilizzare Firestore Lite

Può essere difficile decidere quando abbandonare le funzionalità di persistenza offline e memorizzazione nella cache dell'SDK Firestore standard. Devi comprendere queste funzionalità prima di decidere di rinunciarvi per ridurre l'overhead di Firestore Lite. In generale, valuta questi fattori quando decidi se utilizzare Firestore Lite:

  • Stato online: Firestore Lite è adatto per le app che non necessitano di aggiornamenti in tempo reale e dispongono di connettività.
  • Vincoli di dimensioni: Firestore Lite è ideale se vuoi ridurre le dimensioni complessive del bundle JavaScript.