当您将应用服务器从 GCM 迁移到 FCM 时,旧客户端会发生啥情况?
Posted
技术标签:
【中文标题】当您将应用服务器从 GCM 迁移到 FCM 时,旧客户端会发生啥情况?【英文标题】:What happens to older clients when you migrate an app server from GCM to FCM?当您将应用服务器从 GCM 迁移到 FCM 时,旧客户端会发生什么情况? 【发布时间】:2017-08-18 09:44:51 【问题描述】:我正在考虑迁移到 FCM。事情的客户端相当简单,你移动一些代码并完成它。但是,在应用服务器上,出于显而易见的原因,我还需要支持旧客户端。我需要知道将 GCM 项目迁移到 FCM 时会发生什么。 FCM 是否也会自动将消息转发到基于 GCM 的旧客户端?或者我是否需要将每条消息发送两次,一次发送到 FCM,一次发送到 GCM?这将如何影响特定于实现的内容,例如从 Firebase 的 Web 控制台发送的消息?有什么我应该注意的细节吗?
【问题讨论】:
【参考方案1】:使用 FCM(导入的项目或使用它的端点,无论您是什么意思)仍然与 GCM 客户端(特别是令牌)兼容。他们仍然可以像往常一样接收消息。
查看这些类似的帖子:
https://***.com/a/37517339/4625829 https://***.com/a/42674121/4625829【讨论】:
所以,基本上,我只是将主题消息发送到 FCM 端点,它也会自动将其推送到较旧的 GCM 客户端,对吗?不好意思一再问,顺利过渡真的很关键。【参考方案2】:无论您使用 FCM、Localytics、mixpanel 等作为平台,FCM 都充当触发通知和内部 GCM 控制通知的平台。只要 Api 密钥对于任何 paltform 都是相同的。您不必担心 FCM 或 GCM。
只需确保您为 FCM 使用与 GCM 相同的服务器密钥(Api 密钥)。
或者查看下面的链接以了解 FCM 解决方案的详细信息来处理这种情况。
https://support.pushcrew.com/support/solutions/articles/9000064351-setting-up-your-fcm-keys-previously-called-gcm-
【讨论】:
使用相同的服务器密钥并不能真正使兼容性发挥作用(因此可以重新生成密钥)。另请注意,importing a project to FCM, will generate a new Server Key: "注意:如果 Google 为您的项目创建了一个额外的服务器密钥,标签为“(由 Google 服务自动创建)”,请使用此新密钥而不是您现有的密钥." -- 建议参考官方文档。【参考方案3】:您可能需要手动向两个版本的客户端发送通知,因为 GCM 和 FCM 并不完全相同。
更好的方法是启用强制升级(如果在应用中实现),以便所有用户群都可以迁移到新版本的应用。
【讨论】:
是的,但是 GCM 用户可能会收到重复的消息。而且我不会因为应该对用户完全透明的更改而强制更新。 "手动发送到两个版本" -- 这表明您需要发送两个单独的消息,而这不是必要的。 @Arshia001,是的。请保持透明。您可以显示为什么要求用户升级的消息。 @AL.,如果 GCM 密钥相同,则没有问题,但如果不是,则需要。 “我们更新了一些你可能永远都不知道存在的东西,所以这里是强制更新!”年度更新日志。以上是关于当您将应用服务器从 GCM 迁移到 FCM 时,旧客户端会发生啥情况?的主要内容,如果未能解决你的问题,请参考以下文章
升级 GCM 到 FCM 服务器报 MismatchSenderId 错误