Cloud Functions中Firestore用import导入时recursiveDelete报错求助
Cloud Functions中Firestore ES模块导入recursiveDelete报错的解决方法
在Cloud Functions中使用Firestore的recursiveDelete方法时,遇到如下问题:
- 使用CommonJS导入时可正常运行:
const {Firestore} = require('@google-cloud/firestore'); export async function deleteDocRecursively(docRef) { await Firestore.recursiveDelete(docRef); }
- 使用ES模块import导入时触发TypeScript错误:
import {Firestore} from '@google-cloud/firestore'; export async function deleteDocRecursively(docRef) { await Firestore.recursiveDelete(docRef); }
TS2339: Property 'recursiveDelete' does not exist on type 'typeof Firestore'.
问题原因
recursiveDelete并非Firestore类的静态方法,而是@google-cloud/firestore包中独立导出的函数。CommonJS版本的包出于兼容性,将该函数挂载到了Firestore类的静态属性上,而ES模块严格遵循模块导出结构,不会自动附加这类额外属性,因此直接通过Firestore.recursiveDelete访问会触发类型错误。
解决方法
直接从包中单独导入recursiveDelete函数即可:
import { Firestore, recursiveDelete } from '@google-cloud/firestore'; export async function deleteDocRecursively(docRef) { await recursiveDelete(docRef); }
这种方式既符合ES模块的规范,也能正确通过TypeScript的类型校验。
内容的提问来源于stack exchange,提问作者vovahost
相关产品推荐
相关产品推荐

