TypeScript下Firestore批量提交失败的错误类型及导入方法
Firestore批量提交失败的错误类型及导入方式
当使用Firebase Admin SDK的batch.commit()方法失败时,抛出的是FirebaseError类型——这是Firebase Admin SDK统一的错误类型,覆盖了Firestore操作的各类失败场景,比如权限不足、资源耗尽、数据验证错误等。
导入错误类型
你需要从firebase-admin/app模块导入FirebaseError:
import { getFirestore } from 'firebase-admin/firestore'; import { FirebaseError } from 'firebase-admin/app'; // 导入错误类型
在代码中处理错误
在catch块中,可通过类型守卫(instanceof)让TypeScript识别错误类型,从而安全访问错误的专属属性:
const db = getFirestore(); // 云函数内部逻辑 try { const batch = db.batch(); // 添加批量操作... await batch.commit(); } catch (error) { // 类型守卫判断错误类型 if (error instanceof FirebaseError) { console.error(`Firestore批量提交失败,错误码:${error.code},详情:${error.message}`); // 根据不同错误码做针对性处理 switch (error.code) { case 'permission-denied': // 处理权限不足逻辑 break; case 'resource-exhausted': // 处理资源耗尽(如写入超限)逻辑 break; // 其他错误码场景处理 } } else { // 处理非FirebaseError类型的异常 console.error('未知错误:', error); } }
错误类型核心属性
FirebaseError包含几个实用属性:
code: 标准化错误码(字符串),符合Firebase错误码规范message: 错误的详细描述信息details: 可选,包含错误相关的额外数据
内容的提问来源于stack exchange,提问作者Aimn Blbol
相关产品推荐
相关产品推荐

