Firestore — это хорошее масштабируемое решение для баз данных, позволяющее синхронизировать данные между веб-клиентами.
Для многих приложений управляемая офлайн-поддержка Firestore особенно важна, позволяя создавать адаптивные приложения, работающие независимо от задержек сети и интернет-подключения. Однако многофункциональные SDK имеют свою цену. Что предлагает Firebase для приложений, которым требуются только базовые операции создания, чтения, обновления и удаления и которым не нужна управляемая офлайн-поддержка?
Решение: Firestore Lite
Firestore Lite — это лёгкий, автономный Firestore SDK, работающий только на REST и поддерживающий выборку отдельных документов, выполнение запросов и обновление документов, занимая при этом лишь малую часть объёма обычного Web SDK. В Firestore Lite отсутствуют функции компенсации задержки, автономного кэширования, возобновления запросов и прослушивания снимков, но в некоторых случаях сокращение размера библиотеки и времени запуска является существенным преимуществом.
Импорт Firestore Lite
Firestore Lite доступен через npm как часть модульного SDK . Таким образом, он полностью модульный и поддерживает Tree Shake.
Поддерживается следующий стиль импорта.
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.