MongoDB触发器函数调用FCM发送推送时提示缺少认证密钥求助
FCM推送请求报错“缺少认证密钥”的排查与解决
核心问题排查与修复步骤
1. 修正Authorization头的格式错误
你的代码中Authorization头的写法存在格式问题:"Authorization":"key= Web Server Key"里key=和密钥之间多了一个空格,FCM的认证头要求key=与密钥之间无空格,正确格式应为key=你的Web Server Key。
2. 确认使用正确的密钥
务必使用Firebase控制台中**Cloud Messaging API (Legacy)**对应的Web Server Key,而非项目设置里的普通API Key:
- 进入Firebase控制台→目标项目→项目设置→云消息传递
- 找到Cloud Messaging API (Legacy)模块,复制其中的Web Server Key(若未启用,先点击启用)
3. 检查请求头参数的拼写
你的代码中用了header(单数),但多数HTTP客户端库要求用headers(复数)定义请求头,这会导致认证头无法被正确识别。
修正后的代码示例
const response = await context.http.post({ url: "https://fcm.googleapis.com/fcm/send", headers: { // 改为复数headers "Content-Type": "application/json", "Authorization": "key=你的Web Server Key" // 移除key=后的空格 }, body: { "to": usersPushToken, "notification": { "title": "Title", "body": "body", "clickAction": 'FLUTTER_NOTIFICATION_CLICK', "sound": 'default', }, } }, { encodeBodyAsJSON: true, });
额外检查项
- 确认Google Cloud控制台中**Cloud Messaging API (Legacy)**已启用:进入Google Cloud控制台→API和服务→库→搜索“Cloud Messaging API (Legacy)”→确保状态为“已启用”
- 复制密钥时避免包含多余换行或空格,建议直接复制粘贴
内容的提问来源于stack exchange,提问作者Georgina
相关产品推荐
相关产品推荐

