Web推送:从GCM迁移到FCM

时间:2019-03-09 11:47:31

标签: firebase google-cloud-messaging firebase-cloud-messaging web-push

我正在升级一个网站,该网站使用适用于Chrome和Firefox的Wen Push Notification。它已经运行了两年。它拥有近2-3百万订户。但是现在,它的服务器速度很慢,这就是为什么我将Web推送通知部分迁移到AWS lambda以获得可扩展的解决方案的原因,因为订阅者正在增加。

注意::它使用pywebpush库发送推送消息。

由于项目的构建很早,因此它使用GCM Keys而不是Firebase Keys。在迁移期间,我发现非常奇怪的事情是,在主服务器上运行良好的相同GCM密钥在aws lambda下无法正常工作。而且我收到401 - Legacy Server Key错误。 Mozilla web push are working great

我阅读了GCM documentation,发现不建议使用GCM。在2019年4月之后,它将不再起作用。另外,我看不到任何GCM控制台。我进入了Firebase控制台并创建了一个新项目,并尝试使用新的fcm_key发送推送通知,这次它以200 and MisMatchSenderId进行了响应,这很有意义,因为此订阅信息是使用{{1 }}。现在,我有以下问题,如果有人知道答案,请告诉我。

  1. 如何将当前的gcm sender id迁移到GCM project,以使我的FCM project保持不变?我可以吗?

  2. 将近2-3百万的订阅者使用旧的gcm sender id进行了订阅,如果我无法迁移,那么解决方案是什么。我会失去所有订阅者,还是需要为每个用户重新订阅并获取新的订阅信息?

  3. 如果我需要为每个浏览器重新订阅,它会再次要求允许和阻止权限吗?

您的帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

  1. 只需将您的项目导入Firebase控制台。 GCM发送者ID实际上与项目的ID相同-是唯一且永久的。将项目导入Firebase不会对其进行更改。

  2. 在导入GCM项目并迁移服务器后,令牌关系(即主题订阅,设备组,一般的注册令牌)仍然可以使用。参见thisthis

不幸的是,我对第三个项目不了解。但是从移动方面来看,它使用的是相同的权限。

答案 1 :(得分:0)

  1. 按照https://developers.google.com/cloud-messaging/android/android-migrate-fcm的步骤进行操作。发件人ID将保持不变。

  2. 您将不会失去任何订阅者,也不需要重新订阅。

  3. 您不需要重新订阅。已经阻止或允许的用户将不会显示“阻止或允许”提示。