You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Firebase项目从CF1切换至新的Cloud Functions(CF2)?

切换Firebase项目指向新Cloud Functions(CF2)的操作步骤

核心思路

本质是逐步将CF1的流量迁移至CF2,全程保留回滚能力,避免直接切换导致服务中断。


1. 完成CF2的测试与部署

  • 先在本地验证CF2的所有函数逻辑、依赖包、触发器(HTTP、Firestore事件、Auth事件等)与CF1完全一致,确保没有功能遗漏或逻辑错误
  • 执行firebase deploy --only functions将CF2部署到同一个Firebase项目下,建议给CF2的函数加区分标识(比如CF1的createUser改成createUserV2,或统一加v2_前缀),避免和CF1重名冲突

2. 分场景迁移流量

场景1:HTTP触发器函数

  • 直接修改前端/客户端的请求地址,将原CF1的函数URL替换为CF2的对应URL
  • 若需要平滑过渡,可通过Firebase Hosting的重写规则做灰度发布,先导部分流量到CF2,验证稳定后再全量切换:
    // firebase.json 配置示例
    {
      "hosting": {
        "rewrites": [
          {
            "source": "/api/createUser",
            "function": "createUserV2",
            "condition": {
              "percent": 50 // 50%流量分流到CF2
            }
          },
          {
            "source": "/api/createUser",
            "function": "createUser" // 剩余流量保留在CF1
          }
        ]
      }
    }
    

场景2:后台触发器函数(Firestore/Auth/Storage等)

  • 这类由事件触发的函数无法做灰度,需先部署CF2的触发器,再禁用CF1的触发器:
    1. 进入Firebase控制台 → 云函数页面 → 找到CF1的对应函数
    2. 点击函数右侧的「更多」按钮 → 选择「禁用」
    3. 观察CF2的日志(控制台→云函数→日志),确认事件正常触发后,再删除CF1的函数(防止误触发)

3. 验证与回滚

  • 切换完成后,持续监控CF2的日志和调用指标,确认无报错、功能正常
  • 若出现问题,立即回滚:HTTP函数改回原CF1的URL,后台触发器重新启用CF1并禁用CF2

4. 清理旧资源

  • 确认CF2稳定运行72小时以上后,删除CF1的所有函数,释放闲置资源

内容的提问来源于stack exchange,提问作者whatwhatwhat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 10:32:06