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

无法部署Python Flask版Firebase云函数,请求返回404

问题排查与解决方案

核心问题

你的代码没有遵循Firebase Python云函数的正确导出规范,导致Firebase部署工具无法识别要部署的函数,最终控制台无函数、请求返回404。

问题分析

  1. 你直接使用Flask的路由装饰器@app.get('/test'),但Firebase云函数需要通过firebase_functions.https_fn.on_request来标记可部署的HTTP函数,否则部署流程无法识别要发布的函数。
  2. 部署日志里的本地服务启动是Firebase的代码预检查流程,但因为没有导出符合要求的函数,检查结束后没有实际打包部署任何云端函数,所以控制台看不到函数。

修正后的代码

from firebase_admin import initialize_app
from firebase_functions import https_fn
import flask

initialize_app()
app = flask.Flask(__name__)

@app.get('/test')
def hello_world():
    print('Hello World')
    return 'Hello, Firebase Cloud Functions with Python'

# 关键:将Flask app包装成Firebase HTTP函数并导出
test_fn = https_fn.on_request(app)

额外检查步骤

  • 确认你的firebase.json中(如果存在)的functions配置指向正确的代码文件,例如:
    {
      "functions": {
        "source": ".",
        "runtime": "python311"
      }
    }
    
  • 重新执行部署命令:
    firebase -P staging deploy --only functions
    
  • 部署完成后,前往Google Cloud控制台的Cloud Functions页面,确认test_fn函数已存在,对应的端点格式为:https://us-central1-<project-id>.cloudfunctions.net/test_fn(注意函数名是你导出的变量名test_fn,不是Flask路由的/test)
  • 访问时,完整路径应为:https://us-central1-<project-id>.cloudfunctions.net/test_fn/test(因为Flask的路由/test挂载在Firebase函数的根路径下)

原理说明

Firebase Python云函数的部署流程依赖于识别被https_fn.on_request(或其他触发器装饰器)标记并导出的函数。直接使用Flask路由时,Firebase无法感知到这是一个需要部署的云服务,因此不会生成对应的云端资源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 06:43:13