SuperAPI AI 工具集

nestjs-notification

编程与开发

查看项目

更新于 10-16 08:48

技能介绍

用途:在 NestJS 项目中实现“双写”通知系统——先把通知持久化到数据库(站内通知),再尝试通过 FCM 发送推送。适用于创建通知实体、发送推送、定义通知类型等场景。

主要能力与流程:发送通知时分四步——1)保存到数据库,持久化带类型枚举与元数据的通知实体;2)检查 FCM token,确认接收方存在有效 fcmToken,缺失则跳过推送;3)发送推送,在 try/catch 中调用 FCM,任何 FCM 失败都不得阻塞请求;4)序列化数据,将 Date 转为 ISO 字符串,FCM 的 data 载荷保持扁平(仅放 ID)。

实现准则:始终先存数据库再尝试 FCM;用 NotificationType 枚举(如 APPOINTMENT_REMINDER)定义细粒度类型,便于前端按图标/颜色区分;DB 中把路由数据(ID)存为 JSON 字符串,FCM data 中映射为仅字符串的键值对;发送前检查 fcmToken 是否存在,缺失时优雅失败;发给 FCM 前把日期序列化为 ISO 字符串。

反模式:不要用 type: string,始终用枚举;不要在无 try/catch 的情况下 await FCM,避免请求崩溃;不要在推送里放复杂数据,FCM data 保持扁平最小(仅 ID),详情在打开时再拉取。

限制:资料仅给出架构与准则,未提供具体代码示例、依赖版本、安装命令或配置细节。