Node.js+Express+Typescript环境Cannot find namespace 'FirebaseFirestore'报错如何解决
问题解决方法
这个报错是因为你误用了客户端Firebase SDK的全局FirebaseFirestore命名空间,Firebase Admin SDK的Firestore相关类型并没有挂载到这个全局命名空间下,需要从Admin SDK包内引用类型。
解决步骤
步骤1:确认你使用的
firebase-admin版本为官方维护的稳定版,Admin SDK原生内置Typescript类型,无需额外安装@types/firebase-admin之类的第三方类型包。步骤2:替换类型引用,有两种可选方案:
方案1:单独引入需要的Firestore类型
在文件顶部添加类型引入:import type { QueryDocumentSnapshot } from "firebase-admin/firestore";之后修改报错行的类型定义:
fromFirestore: (snap: QueryDocumentSnapshot) => snap.data() as UsersCollection方案2:无需额外引入,直接使用admin实例下挂载的类型
直接修改报错行的类型定义即可:fromFirestore: (snap: admin.firestore.QueryDocumentSnapshot) => snap.data() as UsersCollection
额外优化提示
你当前定义的接口中使用了String(JS字符串包装对象类型),建议替换为TypeScript基础类型string,避免后续出现不必要的类型兼容问题:
interface BlogpostColletion { text: string, title: string, }
内容的提问来源于stack exchange,提问作者A.G
相关产品推荐
相关产品推荐

