Catch up on everthing we announced at this year's Firebase Summit. Learn more

Cloud Firestore Lite Web SDK

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

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

解决方案:Firestore Lite

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

导入 Firestore 精简版

公司的FireStore精简版是通过NPM可作为的一部分模块化SDK 。因此,它是完全模块化和可摇树的。

支持以下导入样式。

import { initializeApp } from "firebase/app";
import {
   getFirestore,
   enableIndexedDbPersistence,
   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精简版是不需要实时更新,并有连接的应用程序很好。
  • 大小限制-公司的FireStore精简版是伟大的,如果你想降低您整体的JavaScript包大小。