全书目录

第四十七篇:Firebase 完全指南 —— 云端托管商圈宇宙

第九章:Functions —— 商圈后厨和物业调度中心,不该放在前台的逻辑都往这里走

2 分钟 455 字 第 876 / 962 个阅读单元

Firebase 常被误解成“纯前端直连平台”。

其实它一直有一个很重要的补位:

Cloud Functions for Firebase。

这部分你可以把它理解成:

商圈后厨 + 物业调度中心。

它适合放:

  • 不能暴露给前端的逻辑
  • 数据变化后的后处理
  • 定时任务
  • 第三方 webhook
  • 管理型操作
  • 服务端安全逻辑
  • 给前端提供 HTTPS 接口

官方当前主路径强调的是:

  • 事件触发
  • HTTPS 触发
  • Admin SDK
  • Scheduler
  • JS / TS / Python 支持
  • 托管运行和自动扩缩

一个最小 HTTP 函数示意:

ts
import { onRequest } from "firebase-functions/v2/https";
import { initializeApp } from "firebase-admin/app";
import { getFirestore } from "firebase-admin/firestore";

initializeApp();
const db = getFirestore();

export const createAnnouncement = onRequest(async (req, res) => {
  const title = req.body?.title;

  if (!title) {
    res.status(400).json({ error: "title is required" });
    return;
  }

  const docRef = await db.collection("announcements").add({
    title,
    createdAt: new Date(),
  });

  res.status(201).json({ id: docRef.id });
});

一个 Firestore 事件函数示意:

ts
import { onDocumentCreated } from "firebase-functions/v2/firestore";

export const afterOrderCreated = onDocumentCreated(
  "orders/{orderId}",
  async (event) => {
    const snapshot = event.data;
    if (!snapshot) return;

    const order = snapshot.data();
    console.log("新订单已创建:", order);
  }
);

这像什么?

text
商铺前台接单
   ↓
账本新增记录
   ↓
物业后厨自动收到通知
   ↓
去发消息、记日志、做后处理

#Functions 的核心价值

不是“终于能写后端了”。

而是:

你不需要先把整个后端站点单独拉起来,就能先补齐关键后厨逻辑。

#但别误解

Functions 不等于“完整后端架构永远不需要了”。

如果你业务逐渐变成:

  • 大量复杂服务编排
  • 很重的领域模型
  • 大量内部服务互调
  • 非事件型长流程系统

那可能就会走向更完整的后端服务体系。