关注/问题:
我们在应用程序中使用了一个GCM项目,用于向用户设备发送推送通知。由于GCM弃用,我们迁移到了FCM。但是在迁移过程中,我们创建了一个新的FCM项目(FCM1),但不包括现有的GCM项目,并在客户端应用中配置了google-services.json。在服务器端还配置了FCM1的服务器密钥,并将其发布给最终用户。 目前在生产中,我们很少有用户使用较旧版本的客户端应用(已配置GCM发送者ID)和GCM生成的设备令牌。还有一些具有FCM1 devcie令牌的用户通过更新客户端应用程序。由于这是两个不同的项目,因此我们无法通过使用FCM服务器密钥向仍具有旧GCM令牌的用户发送推送通知(引发“ MismatchSenderId”错误)。这是可以预期的,因为这两个项目的“发件人ID”不同。
以下是我们计划实施的解决方案:
为解决此问题,我们计划通过将GCM项目迁移到其中来创建一个新的FCM项目(FCM2),并使用新的“服务器密钥”将推送通知发送给用户(使用GCM客户端应用)。 https://developers.google.com/cloud-messaging/faq中提到,GCM和FCM注册令牌可以互换,我们可以通过FCM HTTP服务器API发送到现有的GCM令牌。还可以继续使用FCM1“服务器密钥”向FCM1更新的客户端应用程序用户发送推送通知。 因此,新创建的FCM项目(FCM2)仅支持具有客户端应用GCM版本的用户的推送通知。一旦所有用户将应用更新为配置了FCM1的最新版本,他们就会生成新的FCM令牌,这些令牌将在以后使用FCM1“服务器密钥”发送推式通知。
根据FCM标准/ SDK:
请确认这是否是使用旧客户端应用(GCM)的用户发送推送通知的正确方法?还是有其他方法可以将GCM项目迁移到现有FCM项目(FCM1),以便我们可以使用FCM1“服务器密钥”将推送通知发送给具有旧客户端应用(GCM)的用户?