平稳地从GCM过渡到FCM

3

有没有人在这方面有经验?我正在研究迁移,但由于我们已经发布了使用GCM的应用程序,每天有数千个用户和数千条通知,我担心会影响现有的服务。有人成功地进行了平稳过渡吗?

具体来说,在教程中(https://developers.google.com/cloud-messaging/android/android-migrate-fcm)第一步是“导入Google项目”。这是一个单向操作吗?现有的GCM服务器解决方案和部署的GCM应用程序是否仍将继续工作?

还是最好创建一个新项目,并维护两个服务器解决方案,直到GCM部署的应用程序逐步淘汰为止?

2个回答

6
将您的Google项目导入Firebase是一项单向操作,但这不是破坏性操作,您当前的项目将启用所需的API并生成必要的API密钥以供Firebase使用,但如果您决定不继续使用Firebase,则仍然可以从Google开发者控制台管理该项目。
您现有的服务器解决方案将继续像以前一样工作。我建议您将项目导入Firebase。这将比将后端迁移到新项目要容易得多。
注意:
- 如果您使用的是预先生成的InstanceID令牌作为设备ID,则它们将无法在Firebase控制台或主题中使用。因此,您必须维护一个映射,以确定可以使用Firebase控制台和/或主题向哪些用户发送消息。如果您正在使用带有InstanceID的GCM,则无需执行任何操作,因为FCM也使用InstanceID。您可以使用FCM REST API向所有令牌、InstanceID或预先生成的InstanceID发送消息。 - 确保不要在同一个客户端应用程序中同时使用GCM和FCM库。在生成令牌和处理接收到的消息时可能会出现问题。

那么,预先生成的 InstanceID 令牌是否可以与新的 FCM API(https://fcm.googleapis.com/fcm/send)一起使用,以发送简单的推送消息(针对个人令牌)?很抱歉,在官方的 Google 文档中找不到这样的信息 - 或许您可以提供一个链接?我正在努力制定将预先生成的 InstanceID GCM 实现迁移到 FCM 的步骤。 - Oleksandr
1
没有文档明确说明这一事实,但是如果您查看GCM引入时定义的终结点(https://developers.google.com/cloud-messaging/c2dm#server),它与今天通过InstanceID使用的GCM相同。目前,FCM端点将请求传递给与GCM端点相同的基础设施。然而,请注意,对于预先IID令牌,有一些限制,因此我建议最终更新所有客户端至IID。 - Arthur Thompson
@ArthurThompson,您能否请参考一些解释在同一个应用程序中同时使用GCM和FCM库时可能出现的问题的地方? - Zohar Levin
此时使用它们应该没有问题,虽然最近已经解决了一些可能的竞争条件,但这种情况并不被官方支持,可能存在未知的问题。仍建议使用 fcm 或 gcm。 - Arthur Thompson

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接