Firebase BaaS
实时数据库、Auth;移动端场景。
30 分钟
Firebase BaaS
Firebase 把 实时数据库、Firestore、Auth、Hosting 打包成 Backend-as-a-Service,让移动端/前端 少写后端 就能存读数据。它与 dynamodb-essentials 同属 云托管数据层,但面向 客户端直连 而非服务端 SDK 为主。
学习目标
- 区分 Realtime Database 与 Cloud Firestore 模型
- 理解 Firebase Auth 与数据规则(Security Rules)
- 说清何时用 Firebase、何时仍用 Spring Boot + postgresql-essentials
两大数据库产品
| Realtime Database | Cloud Firestore | |
|---|---|---|
| 模型 | JSON 树、深层监听 | 文档集合、查询更灵活 |
| 扩展 | 单库垂直扩展为主 | 自动分片,更适合 scale |
| 查询 | 路径浅、结构简单 | 复合索引、范围查询 |
| 状态 | 存量项目 | Google 推荐新项目 |
// Firestore 文档读写(客户端 SDK 示意)
import { doc, getDoc } from 'firebase/firestore';
const snap = await getDoc(doc(db, 'users', uid));
客户端能直连 = 必须写 Security Rules,不能把 orm-essentials 那套「服务端校验」假设搬过来。
典型移动端场景
- 实时协作:白板、聊天 presence(与 WebSocket track 可对照)
- 快速 MVP:无自建 API,Rules + Cloud Functions 补逻辑
- 跨端同步:iOS / Android / Web 同一 Firestore
不适合:复杂多表事务、强合规审计、与现有 Java 单体深度集成——应 API 网关 + 主库,Firebase 仅作边缘缓存或特定功能。
与 DynamoDB、MongoDB 对照
| Firebase | DynamoDB | MongoDB | |
|---|---|---|---|
| 托管 | Google 全托管 | AWS 全托管 | 自建或 Atlas |
| 客户端直连 | 一等公民 | 通常经 API | 通常经 API |
| 计费 | 读写次数 + 存储 | RCU/WCU | 集群规格 |
Serverless 栈常见组合:Lambda + DynamoDB(见 ddb-intro);移动优先常见 Firebase + 少量 Cloud Functions。
练习
- 写两条 Firestore Security Rule 思路:「仅本人可读自己的 profile」