Веб-SDK Cloud Firestore Lite

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.