我的网络项目使用了旧的 GCM 消息传递,我将其迁移到新的 FCM
我更改了服务器上的代码,用于将请求发送到
https://fcm.googleapis.com/v1/projects/{my-project-id}/messages:send
。
我更改了
pushManager.subscribe
的前端 JavaScript 代码,添加了从 firebase Web Push 证书公钥获取的 applicationServerKey
,并从 gcm_sender_id
中删除了 manifest.webmanifest
所以,现在新的注册令牌正在成功并保存在我的服务器上。
现在当我向旧的注册令牌发送通知消息时,当我使用 GCM 和
gcm_sender_id
时,它已成功发送,没有错误。
但是,如果我向新的注册令牌发送通知消息,我总是会收到代码 403 Forbidden 和文本错误 SENDER ID MISMATCH 的错误
我知道senderId是Google Cloud控制台中的一个项目ID,它必须与Firebase项目中的项目ID相同,这实际上是相等的,并且连接到一个帐户。
我试图在 Google Cloud console 中配置新项目,并在 Firebase 中配置新项目,但没有任何帮助,我遇到了同样的错误。
我做错了什么?
解决了!
问题出在:
我使用了pushManager.subscribe,但这是错误的!
对于 firebase 订阅,需要使用 firebase-app.js、firebase-messaging.js 和 messages.getToken()