Skip to content
返回云服务

GCP Firestore NoSQL

serverless 文档 DB — 强一致性、实时监听、移动离线同步。

GCP进阶

为什么

Firestore 自动伸缩、实时同步客户端、移动离线工作。强一致性、ACID 事务。免费:1GB 存储 + 5 万读/天。无需连接池。

何时使用

需实时同步的移动/Web 应用、用户画像、排行榜时用。避免复杂连接(用 Cloud SQL)或重分析(用 BigQuery)。

如何做

1. 创建 — Firebase 控制台或 gcloud、Native 模式(非 Datastore) 2. 集合 — /users/{userId}/orders/{orderId}、层次 3. 添加 — db.collection("users").add({...}) 4. 查询 — .where("age", ">", 18).limit(50)、需复合索引 5. 实时 — onSnapshot、自动同步所有监听 6. 事务 — 原子读 + 写、冲突重试 7. 安全规则 — 声明式、按文档控制访问 8. 离线 — SDK 缓存、重连同步

示例

import { initializeApp } from "firebase/app"; import { getFirestore, collection, onSnapshot, where, query } from "firebase/firestore"; const db = getFirestore(initializeApp(config)); // 实时监听 — 自动更新 const q = query(collection(db, "orders"), where("status", "==", "pending")); onSnapshot(q, (snap) => { snap.docChanges().forEach((c) => { console.log(c.type, c.doc.data()); // added/modified/removed }); }); // 安全规则 — 仅所有者可读 rules_version = '2'; service cloud.firestore { match /databases/{db}/documents { match /users/{userId} { allow read, write: if request.auth.uid == userId; } } }

常见问题

  • ⚠需复合索引 — Firestore 提示创建、随规则部署
  • ⚠读成本 — 5 万免费后 $0.036/10 万、实时监听累积
  • ⚠无 != 查询 — 用多 where 子句或重构

最佳实践

  • ✓用安全规则 — 声明式、DB 强制、无需服务器
  • ✓批写 — 每批 500 操作、降成本和延迟
  • ✓用 Cloud Functions 触发 — 服务端响应变更、无客户端轮询

常见问题解答

什么是GCP Firestore NoSQL?它解决什么问题?

serverless 文档 DB — 强一致性、实时监听、移动离线同步。 它可帮助开发者在不自建基础设施的前提下完成部署、存储与扩展,是云服务选型的核心参考。

如何在 5 分钟内上手GCP Firestore NoSQL?

两步即可跑通:① 创建 — Firebase 控制台或 gcloud、Native 模式(非 Datastore);② 集合 — /users/{userId}/orders/{orderId}、层次。建议先用免费套餐验证流程,再接入生产环境。

GCP Firestore NoSQL 最容易踩的坑是什么?

最高频的问题是:需复合索引 — Firestore 提示创建、随规则部署。建议在上线前用 checklist 逐项核对,并在 CI 中加入策略与配置扫描。

GCP Firestore NoSQL 的最佳实践有哪些?

GCP Firestore NoSQL 的最佳实践包括:用安全规则 — 声明式、DB 强制、无需服务器;批写 — 每批 500 操作、降成本和延迟;用 Cloud Functions 触发 — 服务端响应变更、无客户端轮询。其中首条「用安全规则 — 声明式、DB 强制、无需服务器」应作为团队默认规范写入 IaC 模板。

GCP Firestore NoSQL 如何控制成本与避免账单意外?

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