Firestore — это хорошее масштабируемое решение для баз данных, позволяющее синхронизировать данные между веб-клиентами.
Для многих приложений управляемая поддержка автономного режима в Firestore особенно важна, позволяя создавать адаптивные приложения, работающие независимо от задержки сети или интернет-соединения. Но многофункциональные SDK имеют свою цену. Что же предлагает Firebase для приложений, которым нужны только базовые операции создания, чтения, обновления и удаления, и которым не требуется управляемая поддержка автономного режима?
Решение: Firestore Lite
Firestore Lite — это облегченный, автономный SDK Firestore, работающий только с 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 исключает следующие функции из стандартного SDK Firestore:
- Обработчики событий DocumentSnapshot . Метод
onSnapshot, а также объектыDocumentChange,SnapshotListenerOptions,SnapshotMetadata,SnapshotOptionsиUnsubscribeне включены. - Вспомогательные функции для работы с данными . Методы
enableIndexedDBPersistence,enableMultiTabIndexedDbPersistenceиclearIndexedDbPersistenceне включены. - Пакеты Firestore . Метод
loadBundleи связанные с ним методы, а также объектыLoadBundleTaskиLoadBundleTaskProgressне включены.
Реализуйте операции получения, запроса и обновления документов.
После импорта Firestore Lite вы можете выполнять все привычные вызовы API для получения и обновления данных. Применяются все сценарии использования для добавления и получения данных .
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
Решение о том, когда следует отказаться от функций автономного сохранения данных и кэширования стандартного SDK Firestore, может быть непростым. Прежде чем принимать решение об отказе от этих функций в пользу более экономичного Firestore Lite, необходимо понимать их особенности. В целом, при принятии решения об использовании Firestore Lite следует учитывать следующие факторы:
- Статус подключения к сети — Firestore Lite подходит для приложений, которым не требуются обновления в реальном времени и которые имеют возможность подключения к интернету.
- Ограничения по размеру — Firestore Lite отлично подходит, если вы хотите уменьшить общий размер вашего JavaScript-пакета.