关于 Google Cloud Firestore API,您需要了解的一切
关于 Google Cloud Firestore API,您需要了解的一切

面向开发者、产品负责人和无服务器爱好者的完整指南

关于 Google Cloud Firestore API,您需要了解的一切

Google Firestore 是全球最受欢迎的云端 NoSQL 数据库之一,由 Firebase 和 Google Cloud 提供。Firestore 非常适合构建实时应用程序,具有可扩展性,无需服务器管理,并且速度极快。该数据库提供 REST API、gRPC 和各种 SDK,深受移动、Web 和后端开发人员的青睐。本文将全面深入地介绍 Firestore,并提供实际示例、可利用 Firestore 构建的项目、成功的应用程序示例、架构、安全性和最佳实践。.
0 股票
0
0
0
0

什么是 Firestore?

Firestore 是一个基于文档/集合的 NoSQL 云数据库,具有以下特性:

  • 结构化和灵活的存储
  • 实时同步能力
  • 使用 Firebase 安全规则实现高级安全性
  • 自动可扩展性
  • 全球延迟极低
  • 能够执行复杂查询
  • 适用于小型到大型项目

Firestore 的两种模式 原生模式 (Firebase 特有) 数据存储模式 (适用于 GCP 企业服务).


Firestore 中的数据结构

Firestore 采用简单而强大的架构:

  • 收藏 → 文档集合

  • 文档 → 类似 JSON 的结构

  • 子系列 → 每个文档内的集合

  • 场地 → 每个文档的字段

样品结构:

users (collection)
   └── userId123 (document)
    ├── name: "Ali"
    ├── age: 28
    └── posts (subcollection)
      └── postId981 (document)
        ├── title: "My First Post"
        └── likes: 52

使用 Firestore API 的示例代码

1. 与 JavaScript 一起使用(Web 应用 / Node.js)

安装

npm install firebase

正在连接到 Firestore

import { initializeApp } from "firebase/app";
import { getFirestore, doc, setDoc, getDoc } from "firebase/firestore";
const firebaseConfig = {
apiKey: "...",
authDomain: "...",
projectId: "...",
};
const app = initializeApp(firebaseConfig);
const db = getFirestore(app);

添加文档

await setDoc(doc(db, "users", "user1"), {
name: "Ali",
age: 28,
job: "Developer"
});

阅读文档

const docRef = doc(db, "users", "user1");
const snap = await getDoc(docRef);
if (snap.exists()) {
console.log("Data:", snap.data());
}

2. Firestore REST API

发送 POST 请求以创建文档

curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-d '{
"fields": {
"title": {"stringValue": "New Article"},
"views": {"integerValue": "102"}
}
}' \
"https://firestore.googleapis.com/v1/projects/YOUR_PROJECT/databases/(default)/documents/posts"


可以使用 Firestore 构建的项目

1. 聊天和即时通讯应用(实时聊天应用)

由于其即时同步功能,Firestore 是构建聊天系统的最佳选择之一。.

2. 内容管理系统(博客、CMS)

尤其适合不想处理服务器的小团队或初创公司。.

3. 移动应用(iOS / Android / Flutter)

由于:

  • 低延迟

  • 同时同步

  • 内部离线模式

4. 实时管理仪表盘(管理面板)

例如在线商店仪表盘、用户统计、订单管理。.

5. 中小型在线商店

添加产品、类别、购物车、订单等。

6. 物联网应用

快速存储传感器数据。.


使用 Firestore 的成功项目示例

  • 阿里云移动 – 使用 Firestore 进行实时数据管理

  • 《纽约时报》纵横字谜 – 用于在线多人游戏

  • Todoist – 在多个设备间同步用户任务

  • 沙赞 管理一些云数据

  • Hotstar 保存用户数据和个人资料设置

(许多服务在后台使用 Firestore,但并未正式宣布)


Firestore 的优势

自动可扩展性

无需管理服务器。.

高速阅读

基于全球边缘架构。.

安全保障 Firestore 安全规则

示例规则:只有账户所有者才拥有读/写权限:

service cloud.firestore {
match /databases/{database}/documents {
match /users/{uid} {
allow read, write: if request.auth.uid == uid;
}
}
}
支持离线模式

移动端和网页端均可使用。.

强大的查询功能

过滤、排序、范围查询、索引。.


挑战和局限性(最好在使用前了解)

❌ 不支持连接(这是 NoSQL)
❌ 复杂查询需要索引。
❌ 成本根据读取/写入/存储次数计算
❌ 不适用于超大型数据集(TB 级及以上)
❌ 交易次数有限。


Firestore 与实时数据库

特征火库实时数据库
数据结构基于文档JSON 树
询问非常强非常有限
可扩展性顶部中等的
价格普通的更便宜
用途现代应用简单聊天,物联网

Firestore 是 Realtime DB 的一个更新、更优化的版本。.


面向专业生产环境的 Firestore 最佳实践

1. 选择合适的数据结构

最好不要创建大型文档。.

2. 使用子集合对数据进行分段

例如:帖子 → 评论 → 点赞

3. 缓存密集型查询

降低阅读成本。.

4. 使用云函数进行后端处理

例如发送通知、创建索引和汇总数据。.

5. Firestore 日志记录

避免不必要的费用。.


使用 Firestore 构建的完整博客系统示例

拟建结构:

posts (collection)
  └── postId
    ├── title
    ├── content
    ├── authorId
    ├── createdAt
    └── comments (subcollection)
      └── commentId
        ├── userId
        └── message

添加帖子示例:

import { collection, addDoc, serverTimestamp } from "firebase/firestore";
await addDoc(collection(db, "posts"), {
title: "First Blog Post",
content: "This is the content...",
authorId: "u123",
createdAt: serverTimestamp()
});

结论

Firestore 是一个功能强大的实时云数据库,适合构建快速、可扩展的无服务器服务。.
此服务适用于:

✅ 网站
✅ 移动应用
✅ 内容管理系统
✅ 聊天应用
✅ 实时仪表盘
✅ 物联网项目
✅ 在线商店

如果您正在开发一款需要……的产品 即时同步、高速运行且成本可控。 是的,Firestore 是最佳选择之一。.

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注


您可能也喜欢