Веб-SDK Cloud Firestore Lite

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.