Catch up on highlights from Firebase at Google I/O 2023. Learn more

Веб-SDK Cloud Firestore Lite

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.