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 oggettiDocumentChange
,SnapshotListenerOptions
,SnapshotMetadata
,SnapshotOptions
eUnsubscribe
non sono inclusi. - Helper di persistenza. I metodi
enableIndexedDBPersistence
,enableMultiTabIndexedDbPersistence
eclearIndexedDbPersistence
non sono inclusi. - Paccheti Firestore. Il metodo
loadBundle
e i metodi correlati, nonché gli oggettiLoadBundleTask
eLoadBundleTaskProgress
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.