Firestore to skalowalne rozwiązanie bazy danych, które umożliwia utrzymywanie synchronizacji danych na różnych klientach internetowych.
W przypadku wielu aplikacji obsługa zarządzanego trybu offline Firestore jest szczególnie ważna, ponieważ umożliwia tworzenie responsywnych aplikacji, które działają niezależnie od opóźnień w sieci lub połączenia z internetem. Pakiety SDK z większą liczbą funkcji są jednak większe. Co Firebase oferuje w przypadku aplikacji, które wymagają tylko podstawowych operacji tworzenia, odczytu, aktualizowania i usuwania, a nie potrzebują obsługi w trybie offline?
Rozwiązanie: Firestore Lite
Firestore Lite to lekki, samodzielny pakiet SDK Firestore obsługujący pobieranie pojedynczych dokumentów, wykonywanie zapytań i aktualizowanie dokumentów. Jego rozmiar jest ułamkiem rozmiaru zwykłego pakietu SDK internetowego. Firestore Lite nie obsługuje kompensacji opóźnień, pamięci podręcznej offline, wznawiania zapytań ani odbiorników zrzutów, ale w pewnych przypadkach zmniejszenie rozmiaru biblioteki i czasu uruchamiania może być wystarczającym kompromisem.
Importowanie Firestore Lite
Firestore Lite jest dostępny w npm jako część modułowego pakietu SDK. Jest więc w pełni modułowa i można ją zredukować.
Obsługiwany jest ten styl importowania.
import { initializeApp } from "firebase/app";
import {
getFirestore,
getDoc,
updateDoc
} from 'firebase/firestore/lite';
Funkcje interfejsu API nieobsługiwane przez Firestore Lite
Ze względu na rozmiar i szybkość Firestore Lite pomija te funkcje w standardowym pakiecie SDK Firestore:
- Moduły obsługi zdarzeń DocumentSnapshot. Metoda
onSnapshot
oraz obiektyDocumentChange
,SnapshotListenerOptions
,SnapshotMetadata
,SnapshotOptions
iUnsubscribe
nie są uwzględniane. - Pomocnicze funkcje trwałości. Metody
enableIndexedDBPersistence
,enableMultiTabIndexedDbPersistence
iclearIndexedDbPersistence
nie są uwzględniane. - pakiety Firestore. Metoda
loadBundle
i powiązane z nią metody oraz obiektyLoadBundleTask
iLoadBundleTaskProgress
nie są uwzględniane.
Wdrażanie pobierania, zapytań i aktualizacji dokumentów
Po zaimportowaniu Firestore Lite możesz wykonywać wszystkie znane wywołania interfejsu API get i update. Dotyczy to wszystkich przypadków użycia dotyczących dodawania danych i pobierania danych.
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');
Kiedy używać Firestore Lite
Trudno jest zdecydować, kiedy zrezygnować ze standardowych funkcji pakietu SDK Firestore dotyczących trwałości offline i buforowania. Zanim zdecydujesz się na rezygnację z tych funkcji na rzecz niższego obciążenia Firestore Lite, zapoznaj się z ich działaniem. Ogólnie rzecz biorąc, przy podejmowaniu decyzji o użyciu Firestore Lite należy wziąć pod uwagę te czynniki:
- Stan online – Firestore Lite jest odpowiedni dla aplikacji, które nie wymagają aktualizacji na bieżąco i mają połączenie z internetem.
- Ograniczenia rozmiaru – Firestore Lite jest świetnym rozwiązaniem, jeśli chcesz zmniejszyć ogólny rozmiar pakietu JavaScript.