如何将AWS SNS与FCM集成迁移至FCM HTTP v1 API?
AWS SNS 转 FCM HTTP v1 推送迁移流程
目前AWS SNS控制台还只支持用旧版FCM服务器密钥创建平台应用,要适配FCM HTTP v1协议,得靠Lambda做中间层转接,具体步骤如下:
1. 先拿Firebase v1的认证凭据
- 登Firebase控制台,进项目设置→服务账号,点「生成新的私钥」,下好JSON格式的密钥文件,内容留着后面用。
2. 建Lambda函数处理v1推送
- 登AWS控制台,新建Lambda函数(选Python/Node.js都行,挑你熟的)。
- 函数核心逻辑就这几点:
- 导入
firebase-admin这类必要库 - 用刚才下的Firebase服务账号密钥初始化Admin SDK
- 接收SNS传过来的推送消息(SNS会把内容打包成事件传给Lambda)
- 调用FCM HTTP v1 API把通知推给目标设备令牌
- 导入
- 给Lambda配个执行角色,权限要够:得允许SNS触发它,也得让它能访问必要资源。
3. 把SNS主题和Lambda连起来
- 在SNS里建个新主题或者用现成的,把Lambda设成这个主题的订阅者,订阅类型选「AWS Lambda」。
- 要保证SNS传给Lambda的消息里有设备令牌、通知标题、内容这些必填字段。
4. 改设备令牌的管理方式
- 以前你是把FCM设备令牌注册成SNS的平台终端,现在换个方式:
- 客户端拿到FCM令牌后,直接存到你的后端数据库,不用再注册到SNS了
- 要推送的时候,后端往SNS主题发消息,消息里带上目标设备令牌列表和通知内容就行
5. 测试跑通流程
- 发个测试消息到SNS主题,检查Lambda是不是正确调用了FCM v1 API,设备能不能收到通知。
- 慢慢替换原来的推送流程,别一下子全换,确保服务不中断。
要是不想折腾Lambda,就只能等AWS SNS官方更新支持FCM HTTP v1,但现在没明确时间,不建议等这个。
内容的提问来源于stack exchange,提问作者Gadget-Man
相关产品推荐
相关产品推荐

