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 connettività 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 le operazioni di base di creazione, lettura, aggiornamento ed eliminazione e non hanno bisogno del supporto offline gestito?
Soluzione: Firestore Lite
Firestore Lite è un SDK Firestore leggero e autonomo solo REST che supporta recuperi di singoli documenti, esecuzione di query e aggiornamenti di documenti, a una frazione delle dimensioni dell'SDK web normale. Firestore Lite omette la compensazione della latenza, la memorizzazione nella cache offline, la ripresa delle query e i listener di snapshot, ma per casi d'uso specifici, le riduzioni delle dimensioni della libreria e del tempo di avvio rappresentano un ottimo compromesso.
Importare Firestore Lite
Firestore Lite è disponibile tramite npm come parte 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à API non supportate da Firestore Lite
Per dimensioni e velocità, Firestore Lite omette queste funzionalità dall'SDK Firestore standard:
- Gestori di eventi DocumentSnapshot. Non sono inclusi il metodo
onSnapshote gli oggettiDocumentChange,SnapshotListenerOptions,SnapshotMetadata,SnapshotOptionseUnsubscribe. - Helper di persistenza. Non sono inclusi i metodi
enableIndexedDBPersistence,enableMultiTabIndexedDbPersistenceeclearIndexedDbPersistence. - Bundle Firestore. Non sono inclusi il
loadBundlemetodo e i metodi correlati, nonché gli oggettiLoadBundleTaskeLoadBundleTaskProgress.
Implementare recuperi, query e aggiornamenti di documenti
Dopo aver importato Firestore Lite, puoi effettuare tutte le chiamate API get e update che conosci. Si applicano tutti i casi d'uso per l'aggiunta dei dati e il recupero dei 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 difficile decidere quando abbandonare le funzionalità di persistenza e memorizzazione nella cache offline dell'SDK Firestore standard. Devi comprendere queste funzionalità prima di decidere di scambiarle con il sovraccarico inferiore di Firestore Lite. In generale, valuta questi fattori quando decidi se utilizzare Firestore Lite:
- Stato online : Firestore Lite è ideale per le app che non richiedono aggiornamenti in tempo reale e che hanno connettività.
- Vincoli di dimensioni : Firestore Lite è ideale se vuoi ridurre le dimensioni complessive del bundle JavaScript.