我能在我的应用程序中同时使用GCM和FCM吗?

3

我有一个Android项目,其中实现了GCM。后端(服务器)已经适当地编码了GCM。

现在是否可以在我的项目中添加Firebase(FCM),并与GCM并行工作?我无法迁移到FCM,因为不可能更改我的后端代码,因为这是一个大项目,并且有太多的代码。有人做过这样的事情吗?

请帮忙。提前致谢。


强烈建议使用FCM而不是GCM。FCM比GCM更容易使用。此外,谷歌现在或将来可能停止对GCM提供支持,因此最好选择FCM。 - Rushi Ayyappa
你应该尝试迁移你的数据。请参考此链接:https://developers.google.com/cloud-messaging/ - Rushi Ayyappa
但是如果我这样做,那么我可能必须更改我的后端..可能有很多引用(我不确定)..所以我不太自信迁移。 - Tahmid Rahman
但如果将来谷歌停止支持,那么你将一无所获。所以最好现在就开始。 - Rushi Ayyappa
我需要在后端更改每个引用吗?这与位置有关,广播接收器不断检查广播意图。 - Tahmid Rahman
没有,这没什么大不了的。你发送的请求参数是相同的,但服务链接和API密钥会变化。除此之外,FCM提供了最简单的方式来处理令牌注册和注销,不像GCM。 - Rushi Ayyappa
4个回答

6
尽管我的情况可能有些特殊,因为我所涉及的项目具有非常特定的后端,但在我看来,FCM与GCM的互操作性很好,即您可以在应用程序中同时拥有GCM和FCM广播接收器/接收器服务,并且它们都能正常工作而不会发生冲突。
这具有巨大的优势,因为您不必立即决定迁移,可以更加逐步地进行。
干得好,谷歌!

1
不,您不能同时使用FCM和GCM。 GCM是旧版本,强烈建议使用FCM。
为什么Google Cloud Messaging (GCM)是Firebase的一部分?它与Firebase Cloud Messaging (FCM)有什么关系?
Google正在投资于Firebase,使其成为我们统一的移动平台。
在过去的几年中,我们已经将GCM扩展到除Android之外的多个平台发送消息:iOS和Chrome。Firebase以跨平台而闻名,因此FCM现在自然地适合于为Android、iOS和移动Web设计的Firebase功能套件。
Firebase的另一个核心价值是跨功能集成。我们正在添加其他Firebase功能通过FCM轻松发送消息的能力。例如,您可以使用Firebase通知向用户发送重新参与消息。
我们认为,作为Firebase集成部分,GCM将对开发人员更加有用。您仍然可以获得相同的优秀产品,现在更名为“Firebase云消息传递”,简称FCM。
GCM会被弃用吗?
我们将继续支持当前版本的GCM Android和iOS SDK,因为我们知道许多开发人员今天正在使用GCM SDK处理通知,并且客户端应用程序升级需要时间。
但是所有新的客户端功能只会添加到FCM SDK中。我们强烈建议您升级到FCM SDK。
你可以在这里获取更多细节

5
我不认为这个回答解决了问题。问题是是否可能同时支持两者,而不是推荐哪一个。 所以我认为,在 GCM 完全淘汰之前,仍然可以在 Android 应用程序中同时使用两者 - 然后 FCM 将成为唯一的云消息传递库。 - foo

0

我发现同时使用GCM和FCM存在问题。您会得到两个不同的deviceToken,其中一个令牌会出现NotRegistered错误。

我的FCM令牌始终出现NotRegistered错误,但应用程序处于活动状态且未被卸载,而我的GCM令牌则有效并获得推送通知。


0
根据常见问题解答,当您将客户端应用程序从GCM迁移到FCM时,无需进行额外的服务器配置,因此只需在您的Android应用程序中使用FCM即可。

这里是有关如何迁移您的应用程序的文档。


我已将我的项目添加到Firebase控制台。 GCM已与另一位开发人员设置。因此,发送者ID和令牌不同;我需要在后端进行哪些更改? - Tahmid Rahman

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