需要从GCM迁移到FCM吗?

45

谷歌刚刚宣布Google Cloud Messaging已经更名为Firebase Cloud Messaging。对于Google Cloud Messaging现有用户来说,这意味着什么?他们需要进行哪些迁移(如果需要的话)?

5个回答

107

FCM是什么,为什么我们应该使用它?

FCM (Firebase Cloud Messaging) 是 Firebase 品牌下的 Google Cloud Messaging API 的新版本和改进版。它具备 GCM 所有功能以及一些附加功能。根据 Firebase FAQ,它 "继承了 GCM 的核心基础设施,提供了新的 SDK 以简化云消息开发"。Google 在他们的 Cloud Messaging FAQ 中解释了发布 FCM 的决定:

Firebase 以跨平台而闻名,因此 FCM 现在自然地适合于专为 Android、iOS 和移动 Web 设计的 Firebase 功能套件中

Google 建议在他们的 Android API 的Release Notes 中从 GCM 升级到 FCM。在 Firebase FAQ 中给出了这样做的原因:

升级到 FCM SDK 的好处包括:

  • 更简单的客户端开发。您不再需要编写自己的注册或订阅重试逻辑。
  • 开箱即用的通知解决方案。您可以使用 Firebase Notifications,这是一种无服务器通知解决方案,具有一个 Web 控制台,任何人都可以根据 Firebase Analytics 洞见向特定受众发送通知。

GCM已经被弃用了吗?

一些 GCM 的功能已经被弃用(例如,请参阅 https://developers.google.com/cloud-messaging/android/legacy-regid),现在在未来的几天内,GCM 将被完全弃用。 Google 说

我们将继续支持当前版本的 GCM Android 和 iOS SDK,因为我们知道许多开发者今天仍在使用 GCM SDK 处理通知,客户端升级需要时间。

但是所有新的客户端功能都将仅添加到 FCM SDK 中。强烈建议您升级到 FCM SDK。

如何将旧的 Android 应用程序从 GCM 更新为 FCM

来自https://developers.google.com/cloud-messaging/android/android-migrate-fcm

将您的 GCM 项目导入为 Firebase 项目:

在 Firebase 控制台中,选择导入 Google 项目

从现有项目列表中选择您的 GCM 项目,并选择添加 Firebase

在 Firebase 欢迎屏幕上,选择将 Firebase 添加到您的 Android 应用

提供您的包名和 SHA-1,并选择添加应用。将会下载适用于 Firebase 应用的新 google-services.json 文件。

选择继续并按照添加 Google Services 插件的详细说明在 Android Studio 中操作。


6
“是的,GCM现在已经过时了。请看这里。” 这是不正确的。GCM目前尚未被弃用。你链接的是旧版GCM API,在2015年被弃用,改用InstanceID获取GCM注册令牌。 - user102008
3
"Yes some features of GCM is already depreciated"这句话有误导性,因为你所说的“特性”早在FCM出现之前就已被弃用了(注意:不是“折旧”)。按照这个逻辑,你也可以说Android、iOS和任何其他软件产品的某些功能已经被弃用,因为某个版本中的某些东西已经被弃用了。 - user102008
@RobiKumarTomar,你说它具有GCM的所有功能,但是当应用程序在后台时如何处理传入消息,我找不到任何方法做到这一点:s - vanlooverenkoen
@KoenVanLooveren 请阅读此文档 https://firebase.google.com/docs/cloud-messaging/concept-options。 - Robi Kumar Tomar
1
是的,我知道,但是你不能在后台编写自己的传入消息实现,它们总是立即进入系统托盘,如果我想向所有用户发送一条消息以激活禁用的功能,系统托盘中总会有通知,我不是很喜欢这样。 - vanlooverenkoen
从GCM迁移到FCM时,服务器端(API调用)是否应进行任何更改?现在我有到https://android.googleapis.com/gcm/send的curl调用。GCM的新终点将是什么? - jekaby

33
更新:最近通过电子邮件宣布,GCM现已弃用并将在明年(2019年)完全移除,所有GCM用户都应开始迁移到FCM。有关更多详细信息,请参见我的答案此处
除了Pritam Baral的回答所述之外,需要注意的是,FCM的核心由GCM本身组成。实际上没有必要迁移到FCM,但建议这样做,因为一旦迁移到FCM,与其绑定的所有功能都将可用于使用。当参考Firebase官方价格页面时,免费包含的功能如下:

Analytics,App Indexing,Authentication,Dynamic Links,FCM,Invites,Notifications,Crash Reporting和Remote Config

预IO GCM实现在未来仍可以工作较长时间,如GCM和FCM FAQs中所述:

我们将继续支持当前版本的GCM Android和iOS SDK,因为我们知道很多开发人员今天在使用GCM SDK处理通知,并且客户端应用程序升级需要时间。

但是所有新的客户端功能只会添加到FCM SDK中。我们强烈建议您升级到FCM SDK。

根据最近的亮点

Firebase Cloud Messaging基于并改进了Google Cloud Messaging API。您可以继续使用com.google.android.gms.gcm的Google Cloud Messaging,但我们建议升级到com.google.firebase:firebase-messaging。


1
但是你能否使用Firebase Cloud Messaging处理后台消息呢?这是否可行? - vanlooverenkoen
@NannuoLei,您所说的不运行,是指在后台状态还是被杀死的状态? - AL.
1
@NannuoLei,也许我在这里的回答[https://dev59.com/kJffa4cB1Zd3GeqP5kUJ#37429495]可以给你关于GCM / FCM在被杀死状态下的一个思路。此外,我曾经在某个地方读到使用START_STICKY标志可能会有所帮助。在社区中搜索一下,这种查询很常见,比如这个[https://dev59.com/KlkS5IYBdhLWcg3wvI20#39505298]。 - AL.
当我们切换到FCM时,是否可以保持我完成的GCM Android和iOS应用不变,还是这些应用需要以某种方式进行更改?也就是说,如果服务器使用FCM API而不是GCM API,是否就足够了? - Onestone
在迁移指南中,我看到服务器代码只需要更改端点。那客户端代码呢?在GCM完全关闭后,我能否继续使用GCM SDK(GCMRegistrar.register及其当前的发送、接收ID机制)? - o0omycomputero0o
显示剩余3条评论

4

云基础设施大部分将保持不变,因此现有的GCM应用程序应继续正常工作。尽管我还没有发现Google的弃用政策的任何提及,但Google打破现有GCM基础设施/SDK/代码的可能性很小,这是不寻常的(他们也没有太多的理由去这样做)。

FCM似乎是GCM的更好版本,可在多个平台上使用(甚至包括Web!),并更容易设置(与GCM相比)。针对AndroidiOS的迁移指南已经提供。


1
如果您想要迁移,这是官方指南: https://developers.google.com/cloud-messaging/android/android-migrate-fcm - Diego Giorgini

2

谷歌已将GCM扩展到发送消息到多个平台,包括iOS和Chrome。Firebase以跨平台而闻名,因此FCM现在是Firebase针对Android、iOS和移动Web设计的一套功能中的一个自然组成部分。

FCM

  • 它是GCM的先进/改进版本,但具有新的品牌名称Firebase
  • 非常简化的客户端开发
  • 无服务器控制台,任何人都可以向特定设备发送通知
  • 通知有效载荷:4KB,消息有效载荷:2KB。请注意,通知还包括设备和应用程序信息。
  • 如果设备离线,则每个设备最多存储100条通知/消息。

-1
Firebase Cloud Messaging(FCM)是GCM的新版本。它继承了可靠和可扩展的GCM基础设施,以及新功能!请查看常见问题解答以了解更多信息。如果您正在开发新应用中集成消息传递,请从FCM开始。强烈建议GCM用户升级到FCM,以便在今后可以受益于新的FCM功能。
1. FCM是Firebase品牌下的GCM新版本。它继承了GCM的核心基础设施,以确保我们在Android、iOS和Chrome上继续可靠地传递消息。 2. 是的,GCM的某些功能已被弃用,但他们仍然支持所有先前的客户端。 3. 要将GCM SDK升级为FCM SDK,请参阅迁移指南Android
有关更多信息,请访问https://developers.google.com/cloud-messaging/faq

1
GCM已经被弃用了,来源在哪里? - user102008
3
GCM 的一些特性已被废弃。 - Maheshwar Ligade

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