firebase-firestore-enterprise-native-mode 是做什么的?
适用于 Firestore 企业级原生模式的综合指南,包括配置、数据模型、安全规则及 SDK 使用。当用户需要帮助设置 Firestore Enterprise 原生模式、编写安全规则或在应用中使用 Firestore SDK 时,请使用此技能。
概述
Firestore 企业级原生模式是 Firebase 提供的一种高性能、可扩展的 NoSQL 文档数据库解决方案。它专为需要强一致性、低延迟和全球分布的生产环境应用而设计。
功能特性
- 自动多区域复制:数据自动跨多个地理位置复制,实现高可用性。
- 强一致性:所有读取操作在提交后立即反映最新数据。
- 实时监听:通过 SDK 内置的实时监听功能,客户端可立即接收数据变更。
- 灵活的查询:支持复合查询、排序、过滤和聚合。
- 精细的安全规则:通过基于角色的访问控制和数据验证,保护数据安全。
快速入门
- 启用 Firestore API:在 Google Cloud Console 中启用 Firestore API。
- 创建数据库:选择原生模式并配置区域设置。
- 设置安全规则:定义基础规则以保护数据。
- 初始化 SDK:在应用中初始化 Firebase SDK。
数据模型
Firestore 使用文档和集合来组织数据:
- 文档:包含键值对(字段)的单位。
- 集合:文档的容器。
- 子集合:文档内部的嵌套集合。
示例:
users/{userId}/posts/{postId}
安全规则
安全规则使用类似 JavaScript 的语法,控制数据读写权限。基本结构:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if request.auth != null;
}
}
}
SDK 使用
支持多种平台的 SDK:
- Web:使用
firebase模块。 - Android:使用
com.google.firebase:firebase-firestore。 - iOS:使用
FirebaseFirestore框架。
示例(Web):
import { initializeApp } from "firebase/app";
import { getFirestore, doc, getDoc } from "firebase/firestore";
const app = initializeApp(firebaseConfig);
const db = getFirestore(app);
const docSnap = await getDoc(doc(db, "users", "alice"));
最佳实践
- 使用批量写入:批量操作可减少 API 调用次数。
- 避免深度嵌套:保持文档浅层以优化查询性能。
- 合理设置索引:针对频繁查询的字段创建复合索引。
- 实施离线支持:启用离线持久化以提升用户体验。
故障排除
常见问题及解决方案:
- 权限不足:检查安全规则是否允许操作。
- 查询超时:确保已为查询创建适当索引。
- 数据不一致:检查写入操作是否成功提交。