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