Skip to content
返回云服务

GCP Firebase 前端应用

Firebase Auth、Firestore、Hosting 和 Cloud Functions,无需管理服务器构建全栈应用。

GCP进阶

为什么

Firebase 让前端开发者 10 行代码拥有完整后端:Auth(Google/邮箱)、Firestore(实时同步)、Hosting(全球 CDN)。免费 Spark 套餐:5 万次读取、2 万次写入/天。

MVP 和移动应用的理想选择。

何时使用

选择 Firebase 用于 MVP、移动应用(React Native/Flutter)、实时应用(聊天、协作)和无后端开发者的小团队。避免:复杂查询(Firestore NoSQL 限制)、重计算或严格欧盟数据驻留。

如何做

1. 创建项目 — console.firebase.google.com,添加 Web 应用,获取 config 2. 安装 SDK — npm i firebase,在 lib/firebase.ts 中 initializeApp(config) 3. Auth — getAuth(),signInWithPopup(new GoogleAuthProvider()),onAuthStateChanged 4. Firestore — getFirestore(),collection("users"),onSnapshot 实时 5. Hosting — firebase init hosting,firebase deploy(全球 CDN,自动 HTTPS) 6. Cloud Functions — firebase init functions,编写 HTTPS 触发器,部署 7. 安全规则 — firestore.rules 强制认证 + 字段验证 8. 监控 — Firebase 面板(用量、认证用户、Firestore 读写)

示例

// lib/firebase.ts — 初始化 import { initializeApp } from "firebase/app"; import { getAuth, GoogleAuthProvider } from "firebase/auth"; import { getFirestore, collection, onSnapshot, addDoc } from "firebase/firestore"; const app = initializeApp({ apiKey: import.meta.env.VITE_FB_API_KEY, authDomain: "myapp.firebaseapp.com", projectId: "myapp", }); export const auth = getAuth(app); export const db = getFirestore(app); // 实时聊天 — 新消息自动更新 import { collection, onSnapshot, addDoc, query, orderBy } from "firebase/firestore"; function ChatRoom() { const [messages, setMessages] = useState<Message[]>([]); useEffect(() => { const q = query(collection(db, "messages"), orderBy("ts")); return onSnapshot(q, (snap) => { setMessages(snap.docs.map((d) => ({ id: d.id, ...d.data() }))); }); }, []); const send = (text: string) => addDoc(collection(db, "messages"), { text, ts: Date.now(), uid: auth.currentUser?.uid, }); return <div>{messages.map((m) => <p key={m.id}>{m.text}</p>)}</div>; }

常见问题

  • ⚠Firestore 不支持 != 查询 — 无法过滤'不等于',反规范化或用 Algolia
  • ⚠1MB 文档限制 — 大列表需子集合,而非一个文档中的数组
  • ⚠实时监听器成本 — 每个 onSnapshot 是一次读取,避免在大集合上使用
  • ⚠Cloud Functions v1 冷启动 — 用 v2(Cloud Run)降低延迟

最佳实践

  • ✓用 Firestore 安全规则 — 永不信任客户端,服务端强制认证 + 所有权
  • ✓为读取反规范化 — Firestore 按读取收费,复制数据避免连接
  • ✓写入用 Cloud Functions — 客户端保持精简,服务端验证 + 转换
  • ✓启用 App Check — 阻止非应用客户端滥用你的 API

常见问题解答

什么是GCP Firebase 前端应用?它解决什么问题?

Firebase Auth、Firestore、Hosting 和 Cloud Functions,无需管理服务器构建全栈应用。 它可帮助开发者在不自建基础设施的前提下完成部署、存储与扩展,是云服务选型的核心参考。

如何在 5 分钟内上手GCP Firebase 前端应用?

两步即可跑通:① 创建项目 — console.firebase.google.com,添加 Web 应用,获取 config;② 安装 SDK — npm i firebase,在 lib/firebase.ts 中 initializeApp(config)。建议先用免费套餐验证流程,再接入生产环境。

GCP Firebase 前端应用 最容易踩的坑是什么?

最高频的问题是:Firestore 不支持 != 查询 — 无法过滤'不等于',反规范化或用 Algolia。建议在上线前用 checklist 逐项核对,并在 CI 中加入策略与配置扫描。

GCP Firebase 前端应用 的最佳实践有哪些?

GCP Firebase 前端应用 的最佳实践包括:用 Firestore 安全规则 — 永不信任客户端,服务端强制认证 + 所有权;为读取反规范化 — Firestore 按读取收费,复制数据避免连接;写入用 Cloud Functions — 客户端保持精简,服务端验证 + 转换。其中首条「用 Firestore 安全规则 — 永不信任客户端,服务端强制认证 + 所有权」应作为团队默认规范写入 IaC 模板。

GCP Firebase 前端应用 如何控制成本与避免账单意外?

三招防超支:① 为所有资源打 env/team 标签并启用账单告警;② 用预算阈值触发 Slack/邮件通知;③ 定期用 Cost Explorer 审查闲置资源并清理。GCP Firebase 前端应用 多数提供免费套餐,先在免费额度内验证再放量。