SDK web Cloud Firestore Lite

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

Per molte app, il supporto offline gestito di Firestore è particolarmente importante, poiché consente di creare app responsive che funzionano indipendentemente dalla latenza della rete o dalla connettività a internet. Tuttavia, gli SDK ricchi di funzionalità hanno un costo in termini di dimensioni. Che cosa offre Firebase per le app che devono utilizzare solo operazioni di creazione, lettura, aggiornamento ed eliminazione di base e non richiedono l'assistenza offline gestita?

Soluzione: Firestore Lite

Firestore Lite è un SDK Firestore autonomo e leggero solo REST che supporta il recupero di singoli documenti, l'esecuzione di query e gli aggiornamenti dei documenti, a una frazione delle dimensioni del normale SDK web. Firestore Lite omette la compensazione della latenza, la memorizzazione nella cache offline, la ripresa delle query e gli ascoltatori di snapshot, ma per determinati casi d'uso, 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 può essere sottoposto a tree-shake.

È 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 motivi di dimensioni e velocità, Firestore Lite omette le seguenti funzionalità dall'SDK Firestore standard:

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

Implementare il recupero, le query e gli aggiornamenti dei documenti

Dopo aver importato Firestore Lite, puoi eseguire tutte le chiamate get e update dell'API che conosci. Si applicano tutti i casi d'uso per l'aggiunta di dati e per l'ottenimento di dati.

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 complicato decidere quando abbandonare le funzionalità di persistenza e memorizzazione nella cache offline dell'SDK Firestore standard. Ti consigliamo di comprendere queste funzionalità prima di decidere di sostituirle con il minore 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 richiedono aggiornamenti in tempo reale e dispongono di connettività.
  • Limiti di dimensione: Firestore Lite è ideale se vuoi ridurre le dimensioni complessive del bundle JavaScript.