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

部署Firebase Cloud Functions时自动加-default后缀无法识别原有函数

函数名自动添加-default后缀的原因

你当前的导出逻辑触发了Firebase部署工具的默认导出识别规则,具体原因如下:

  • 你的TS函数文件使用export default做默认导出,在Node的模块互兼容机制下,你在index.js中导入的newGame等变量实际是包含default属性的模块对象,而不是直接的云函数实例
  • Firebase部署工具扫描导出的函数时,若检测到导出的对象存在default属性且为可调用的云函数实例,会自动为函数名拼接-default后缀,以此区分同模块下的命名导出与默认导出函数,该逻辑为部署工具内置逻辑,和你手动设置的导出key无关
修复方案

你可以任选以下任意一种方式修复:

  • 调整TS文件为命名导出:将newGame.ts中的export default newGame修改为命名导出格式,同步修改index.js的导入逻辑即可
    示例修改后的TS代码:
    export const newGame = functions.https.onCall( async (data:any,context:any)  => {
    // <function content>
    });
    
    对应index.js导入逻辑:
    const { newGame } = require('./newGame');
    // 其余函数同理修改
    exports.newGame = newGame;
    
  • 保持默认导出不变,导出时取default属性:不需要修改TS文件,仅调整index.js的导出逻辑,直接取导入对象的default属性即可
    示例修改后的index.js代码:
    exports.newGame = newGame.default;
    exports.newRound = newRound.default;
    // 其余函数同理修改
    

Firebase控制台函数展示截图

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 15:24:03