如何在TypeScript+Node.js中从Firebase Admin SDK导入MessagingPayload接口
Firebase Admin MessagingPayload 正确导入方法
报错原因
Firebase Admin SDK v9及以上版本将各个服务的类型定义拆分到了对应子模块,不再从根路径统一导出所有接口,因此直接从"firebase-admin"导入MessagingPayload会触发类型找不到的报错。
两种可用解决方案
- 方案1:从messaging子模块导入类型
使用TypeScript专属的import type语法导入类型(无运行时代码,编译后会自动清除):
导入完成后即可直接用import type { MessagingPayload, MessagingOptions } from "firebase-admin/messaging";MessagingPayload对你的变量做类型注解,和你现有的写法完全兼容。 - 方案2:直接通过admin命名空间引用类型(无需额外导入)
如果你已经导入了firebase-admin全局实例,不需要单独导入接口,直接通过命名空间指定类型即可:import * as admin from "firebase-admin"; const myPayload : admin.messaging.MessagingPayload = { data: notification.toObject(), notification: { title: notification.title, body: notification.body, image: notification.imagePath, }, }; await admin.messaging().sendToDevice(tokens, myPayload, options);
内容的提问来源于stack exchange,提问作者Agung
相关产品推荐
相关产品推荐

