【问题标题】:Smooth GCM to FCM transitionGCM 到 FCM 的平滑过渡
【发布时间】:2016-10-26 21:29:52
【问题描述】:

谁有这方面的经验?我正在调查迁移,但由于我们已经使用 GCM 发布了该应用程序,每天有成千上万的用户和数千条通知,我不愿意担心会破坏现有服务。有人顺利过渡吗?

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

或者最好的办法是创建一个新项目并维护两个服务器解决方案,直到 GCM 部署的应用程序被淘汰?

【问题讨论】:

    标签: android google-cloud-messaging firebase-cloud-messaging


    【解决方案1】:

    将您的 Google 项目导入 Firebase 是一种单向操作,但这不是破坏性操作,您当前的项目将启用所需的 API,并将生成必要的 API 密钥以用于 Firebase,但您仍然可以管理如果您决定不继续使用 Firebase,请从 Google 开发者控制台获取项目。

    您当前的服务器解决方案将继续像以前一样工作。我会将您的项目导入 Firebase。这比将后端迁移到新项目要容易得多。

    注意:

    • 如果您使用预 InstanceID 令牌作为设备 ID,那么它们将无法在 Firebase 控制台或主题中使用。因此,您必须维护可以使用 Firebase 控制台和/或主题发送给哪些用户的映射。如果您使用带有 InstanceID 的 GCM,则无需执行任何操作,因为 FCM 也使用 InstanceID。您可以使用 FCM REST API 发送到所有令牌、InstanceID 或 pre InstanceID。
    • 确保不要在同一个客户端应用程序中使用 GCM 和 FCM 库。您可以在生成令牌和处理收到的消息时发现问题。

    【讨论】:

    • 所以 pre-InstanceID 令牌可以与新的 FCM api (fcm.googleapis.com/fcm/send) 一起使用来发送简单的推送消息(对于单个令牌)?对不起,在官方谷歌文档中找不到这样的信息——也许你可以提供一个链接?我正在研究将 pre-InstanceID GCM 实施迁移到 FCM 的步骤
    • 没有文档明确指出这一事实,但是如果您查看引入 GCM 时定义的端点 (developers.google.com/cloud-messaging/c2dm#server),它与 ​​GCM 使用的端点相同今天的 InstanceID。 FCM 端点现在将请求传递到与 GCM 端点相同的基础架构。但是请注意,使用 pre IID 令牌可以做的事情是有限制的,所以我建议最终将所有客户端更新为 IID。
    • @ArthurThompson 您能否参考某处解释您在同一应用程序中同时使用 GCM 和 FCM 库时提到的问题?
    • 此时将它们一起使用应该没有问题,最近已经解决了一些可能的竞争条件,但是该方案不受官方支持,并且可能存在未知问题。仍然建议使用 fcm 或 gcm。
    【解决方案2】:

    第一次测试,FCM 有很多需要注意的地方。

    主要问题:

    1. 应用处于后台或被终止时的白色通知图标。
    2. 应用在多次打开关闭后挂起。

    阅读这些问题来决定:

    【讨论】:

      猜你喜欢
      • 2015-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-24
      相关资源
      最近更新 更多