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

Cloud Firestore Lite Web SDK

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

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

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

解决方案:Firestore Lite

Firestore Lite 是一个轻量级、独立的纯 REST 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 非常棒。