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

Firebase Functions无法编译TypeScript与ES模块的问题求助

Firebase Functions无法编译TypeScript与ES模块的问题求助

大家好,我最近给项目集成了Firebase Functions,除了把package.json里的"main": "src/index.ts"(默认路径指向的文件不对,所以改了这个配置),其他都是用的默认设置。

下面是我原本能正常运行的代码:

// index.ts
const { initializeApp } = require('firebase-admin/app');
const { onValueCreated } = require('firebase-functions/v2/database');
const { logger } = require('firebase-functions');

initializeApp();

exports.testFn = onValueCreated(
'/users/{uid}/company/accounts/{accId}',
(event) => {
  logger.log(event);
}
);

这段代码在Firebase模拟器里能正常输出日志,完全没问题。

但是当我做了以下修改之后,就出问题了:

// index.ts
// 把require改成了ESM的import
import { initializeApp } from 'firebase-admin/app';
import { onValueCreated } from 'firebase-functions/v2/database';
import { logger } from 'firebase-functions';

initializeApp();

exports.testFn = onValueCreated(
'/users/{uid}/company/accounts/{accId}',
(event: any) => { // 这里加了`: any`类型注解,避免TypeScript报错
  logger.log(event);
}
);

修改后我只得到以下错误信息:

shutdown requested via /__/quitquitquit
!!  functions: Failed to load function definition from source: FirebaseError: Functions codebase could not be analyzed successfully. It may have a syntax or runtime error

我排查后发现,不管是改成ES模块导入,还是给参数加TypeScript类型注解,都会触发这个错误。我已经确认package.json里安装了typescript,而且尝试在ESM导入的末尾加上.js或.ts扩展名也没用,还是一样的报错。

有没有朋友遇到过类似的问题?求指点怎么解决!

备注:内容来源于stack exchange,提问作者ervin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 12:17:57