获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。了解详情

Cloud Firestore Lite Web SDK

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

Firestore 是一个很好的可扩展数据库解决方案,可以在 Web 客户端之间保持数据同步。

对于许多应用程序,Firestore 的托管离线支持尤为重要,它让您构建响应式应用程序,无论网络延迟或互联网连接如何都能正常工作。但功能丰富的 SDK 需要付出一定的规模成本。 Firebase 为只需要使用基本的创建、读取、更新和删除操作而不需要托管离线支持的应用程序提供什么?

解决方案:Firestore Lite

Firestore Lite 是一款轻量级、独立的 REST-only Firestore SDK,支持单个文档提取、查询执行和文档更新,大小仅为常规 Web SDK 的一小部分。 Firestore Lite 省略了延迟补偿、离线缓存、查询恢复和快照侦听器,但对于特定用例,库大小和启动时间的减少是一个很好的权衡。

导入 Firestore Lite

Firestore Lite 可作为模块化 SDK的一部分通过 npm 获得。因此,它是完全模块化和可摇树的。

支持以下导入样式。

import { initializeApp } from "firebase/app";
import {
   getFirestore,
   getDoc,
   updateDoc
} from 'firebase/firestore/lite';

Firestore Lite 不支持的 API 功能

对于大小和速度,Firestore Lite 从标准 Firestore SDK 中省略了以下功能:

  • DocumentSnapshot 事件处理程序。不包括onSnapshot方法和DocumentChangeSnapshotListenerOptionsSnapshotMetadataSnapshotOptionsUnsubscribe对象。
  • 持久性助手。不包括enableIndexedDBPersistenceenableMultiTabIndexedDbPersistenceclearIndexedDbPersistence方法。
  • Firestore 捆绑包。不包括loadBundle方法和相关方法,以及LoadBundleTaskLoadBundleTaskProgress对象。

实现文档获取、查询和更新

导入 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 适用于不需要实时更新且具有连接性的应用。
  • 大小限制- 如果您想减少 JavaScript 包的整体大小,Firestore Lite 是一个不错的选择。