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

Firebase CLI部署时未检测到云函数的问题求助

Firebase云函数部署未被CLI检测到的问题解决

问题现象

执行firebase deploy部署云函数时,CLI完成部署流程但未检测到任何函数,终端无函数部署相关日志,最终无函数上线。

终端部署输出

✔  functions: Finished running predeploy script.
i  functions: ensuring required API cloudfunctions.googleapis.com is enabled...
i  functions: ensuring required API cloudbuild.googleapis.com is enabled...
i  artifactregistry: ensuring required API artifactregistry.googleapis.com is enabled...
✔  functions: required API cloudfunctions.googleapis.com is enabled
✔  functions: required API cloudbuild.googleapis.com is enabled
✔  artifactregistry: required API artifactregistry.googleapis.com is enabled
i  functions: preparing codebase default for deployment
i  functions: preparing cloud_functions directory for uploading...
i  functions: packaged /Users/nils/cloud_functions (243.98 KB) for uploading
✔  functions: cloud_functions folder uploaded successfully
i  functions: cleaning up build files...

✔  Deploy complete!

现有代码

index.ts

import { submitFunction } from "./features/submit/submit_function";

submit_function.ts

exports.submit = submitFunction();
import * as functions from "firebase-functions";

export async function submitFunction() {
  return functions.https.onRequest(async (req, response) => {
    response.status(200);
  });
}

问题原因

  1. 根文件未导出函数:Firebase CLI仅识别项目根目录index.ts顶层exports对象中的函数。现有index.ts仅导入了submitFunction,但未将实际云函数导出到顶层,导致CLI无法扫描到。
  2. 函数定义冗余:submitFunction被定义为async函数,但它返回的是functions.https.onRequest创建的处理函数(而非Promise),异步声明无意义;且通过调用submitFunction()赋值给exports.submit的写法冗余。

解决方案

方案1:修改index.ts导出函数

将submit函数从submit_function.ts导入并导出到index.ts顶层:

// index.ts
export { submit } from "./features/submit/submit_function";

方案2:简化submit_function.ts的函数定义

去掉冗余的async声明,直接导出云函数:

// submit_function.ts
import * as functions from "firebase-functions";

// 直接定义并导出云函数,无需额外包裹函数
export const submit = functions.https.onRequest(async (req, response) => {
  response.status(200).send("请求处理完成"); // 补充send避免请求挂起
});

验证部署

修改后重新执行:

firebase deploy --only functions

此时CLI会检测到submit函数并完成部署。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 15:10:27