Firestore — это хорошее масштабируемое решение для базы данных, позволяющее синхронизировать данные между веб-клиентами.
Для многих приложений особенно важна управляемая автономная поддержка Firestore, позволяющая создавать отзывчивые приложения, которые работают независимо от задержки в сети или подключения к Интернету. Но многофункциональные SDK имеют свою цену. Что предлагает Firebase для приложений, которым нужно использовать только базовые операции создания, чтения, обновления и удаления и которым не нужна управляемая автономная поддержка?
Решение: Firestore Lite
Firestore Lite — это облегченный, автономный Firestore SDK только для REST, который поддерживает выборку отдельных документов, выполнение запросов и обновление документов, при этом размер его составляет лишь часть обычного веб-SDK. В Firestore Lite отсутствует компенсация задержки, автономное кэширование, возобновление запросов и прослушиватели моментальных снимков, но для конкретных случаев использования уменьшение размера библиотеки и времени запуска является отличным компромиссом.
Импорт Firestore Lite
Firestore Lite доступен через npm как часть модульного SDK . Таким образом, он полностью модульный и древовидный.
Поддерживается следующий стиль импорта.
import { initializeApp } from "firebase/app";
import {
getFirestore,
getDoc,
updateDoc
} from 'firebase/firestore/lite';
Функции API, не поддерживаемые Firestore Lite
Из-за размера и скорости Firestore Lite исключает следующие функции из стандартного Firestore SDK:
- Обработчики событий DocumentSnapshot . Метод
onSnapshot
иDocumentChange
,SnapshotListenerOptions
,SnapshotMetadata
,SnapshotOptions
иUnsubscribe
не включены. - Помощники настойчивости . Методы
enableIndexedDBPersistence
,enableMultiTabIndexedDbPersistence
иclearIndexedDbPersistence
не включены. - Пакеты Firestore . Метод
loadBundle
и связанные с ним методы, а также объектыLoadBundleTask
иLoadBundleTaskProgress
не включены.
Реализовать выборку документов, запросы и обновления
После импорта Firestore Lite вы можете выполнять все знакомые вызовы API get и update. Все варианты использования для добавления данных и получения данных применимы.
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');
Когда использовать Firestore Lite
Может быть сложно решить, когда отказаться от стандартных функций автономного сохранения и кэширования Firestore SDK. Вы должны понимать эти функции, прежде чем принять решение об обмене их на более низкие накладные расходы Firestore Lite. В целом, взвешивайте эти факторы при принятии решения об использовании Firestore Lite:
- Онлайн-статус — Firestore Lite подходит для приложений, которым не нужны оперативные обновления и которые имеют возможность подключения.
- Ограничения по размеру . Firestore Lite отлично подходит, если вы хотите уменьшить общий размер пакета JavaScript.