TypeScript开发Firebase Functions时导入模块出现undefined的问题
TypeScript开发Firebase Functions时导入模块出现undefined的问题
嘿,你遇到的这个错误其实挺典型的,大概率是Firebase Functions模块的导入方式搞错啦!
先再明确下你的问题场景:用TS开发Firebase Functions,执行npm run-script build编译后启动模拟器,抛出了如下错误:
TypeError: Cannot read properties of undefined (reading 'user')
at Object.(/home/starleaf1/projects/moonhope-finance-web/functions/lib/auth/registration.js:9:42)
你的TS代码开头是这样的:
import auth from 'firebase-functions/v1/auth' import admin from...
问题核心就在导入方式上!Firebase Functions v1版本的auth模块是命名导出,而非默认导出。你用import auth from...这种默认导入的写法,拿到的其实是undefined,后续代码里想访问它的user属性自然就触发报错了。
给你调整成正确的导入写法:
// 用命名导入的方式获取auth模块 import { auth } from 'firebase-functions/v1/auth'; // admin模块是默认导出,这个写法没问题,但记得要初始化admin哦 import admin from 'firebase-admin'; // 补充:如果还没初始化admin,记得加上这行 admin.initializeApp();
另外再提两个小建议:
- 确保
firebase-functions和firebase-admin都是最新稳定版,版本不匹配也可能引发各种奇怪的模块引用问题 - 编译后可以检查下
lib目录里的JS文件,确认导入语句已经正确转换成对应的命名引用,这样模拟器就能正常识别模块了
备注:内容来源于stack exchange,提问作者starleaf1
相关产品推荐
相关产品推荐

