Cloud Firestore 入门
快速了解 Cloud Firestore。
Cloud Firestore 是由 Firebase 提供的灵活、可扩展的实时 NoSQL 云数据库,用于存储应用程序数据。数据以文档的形式存储:一组键值对,存放在集合中。文档还可以包含子集合。文档组织成集合:集合是一组文档的分组。Cloud Firestore 可在多个客户端应用之间实时同步数据。Cloud Firestore 与其它 Firebase 和 Google Cloud 产品无缝集成。与 Realtime Database 类似,它也为所有客户端应用提供离线支持。
工作原理
Cloud Firestore 将数据存储为 文档。一个 文档 是由一组键值对组成的存储单元。它支持多种数据类型——字符串、数字、布尔值、数组——以及子集合。Cloud Firestore 中的文档存储在 集合 中。一个 集合 是文档的容器,用于组织数据并帮助构建高效的查询。我们也可以在文档内创建子集合。然而,Firestore 中的集合只能包含文档。
Cloud Firestore 支持浅层查询。因此,我们可以检索单个特定文档,或获取集合或子集合中的所有文档。我们可以对查询或游标进行排序、过滤和限制,以实现结果分页。我们还可以添加实时监听器,以便在数据库发生更改时实时获取数据并更新应用。
Cloud Firestore 还会将数据持久化到本地缓存,使其非常适合离线使用。当用户离线时,其应用仍可读取、写入和监听数据。当用户重新上线后,这些数据将自动同步。
实现方式
与任何其他 Firebase 服务一样,我们首先必须从其子包中导入 Cloud Firestore 的获取函数,然后进行初始化。我们通过从 firebase/firestore 子包中导入 getFirestore 函数来完成此操作。该函数接受一个 Firebase App 实例的引用作为参数:
1import { initializeApp } from 'firebase/app'; 2import { getFirestore } from "firebase/firestore"; 3 4 5const firebaseConfig = { 6 apiKey: "AIzaSyDNv52XXXXXXXXXXXXXXXXXXXXXX-krGF8E", 7 authDomain: "my-project-xxxxxxxxxxx.firebaseapp.com", 8 projectId: "my-project-xxxxxxxxxxx", 9 storageBucket: "my-project-xxxxxxxxxxx.appspot.com", 10 messagingSenderId: "01234567890", 11 appId: "1:01234567890:web:8e17ea99e18ac710e7934b", 12 measurementId: "G4-HBF7IU9NPX", 13}; 14 15const firebaseApp = initializeApp(firebaseConfig); 16 17// 获取 Firestore 服务的引用 18export const firestore = getFirestore(firebaseApp);
启用 Cloud Firestore
要在项目中使用 Cloud Firestore,我们必须在 Firebase 控制台中启用它。操作步骤如下:
- 进入 Firebase 项目仪表板,导航至“Firestore Database”部分。
- 点击“创建数据库”按钮开始。
- 接下来,我们需要为数据库定义安全规则。目前,请选择“在测试模式下启动”选项,以允许接下来的 30 天 内所有读写操作。点击“下一步”继续。
- 现在,我们需要为 Cloud Firestore 数据库设置位置。默认位置——“nam5 (us-central)”——已足够。有关 Firestore 位置的更多信息,请参阅 Firebase 文档。
- 点击“启用”,等待 Firebase 提供数据库资源并配置安全规则。
注意:如果你已按照上述步骤在项目中启用了 Cloud Firestore,可以跳过本课其余内容,因为你已经获得了未来 30 天 内对 Cloud Firestore 的访问权限。Firebase 安全规则 将在课程后续部分详细讲解。以下部分仅适用于因旧规则过期而无法访问 Cloud Firestore 数据库的用户。
临时安全规则
如前所述,以测试模式启动 Firestore 数据库可在接下来的 30 天内允许客户端读写数据库。然而,如果该期限结束且我们失去数据库访问权限,则需要为 Cloud Firestore 数据库设置新的安全规则,以恢复读写能力。具体操作如下:
- 导航至 Firebase 控制台的“Cloud Firestore”部分。
- 转到“Rules”标签页,查看现有的 Firestore 数据库规则。
- 复制下方小部件中的八行代码,并粘贴到提供的代码编辑器中:
1rules_version = '2'; 2service cloud.firestore { 3 match /databases/{database}/documents { 4 match /{document=**} { 5 allow read, write; 6 } 7 } 8}
复制上方代码块中的代码,并粘贴到提供的编辑器中,如下所示。完成后,点击“发布”按钮以完成设置。
完成以上步骤后,我们的 Cloud Firestore 数据库现已准备就绪,可供使用!