从GCM迁移到FCM在安卓上的操作指南

7
我希望在安卓应用中从GCM迁移到FCM。 我需要向GCM的旧用户发送推送通知吗?还是可以通过新的FCM从服务器发送? FCM正常工作,我能够通过FCM接收到设备上的推送通知,但我无法通过FCM控制台向旧的GCM注册令牌发送推送通知。 以下是我在清单文件中添加的代码以使FCM正常工作-
<uses-permission android:name="com.google.android.z.permission.RECEIVE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<application>
    <service
        android:name=".view.activity.MyFcmListenerService">
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT" />
        </intent-filter>
    </service>

    <service
        android:name=".view.activity.MyInstanceIDListenerService">
        <intent-filter>
            <action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
        </intent-filter>
    </service>
</application>

1
一旦您将项目从GCM迁移到FCM,您就可以像往常一样通过FCM发送消息。不过需要遵循一些迁移步骤。在此处查看一些步骤。如果您需要更多详细信息,请查阅官方文档。相信您一定能在那里找到所需的内容。 - AL.
1
@intj 我已经迁移并且新的 FCM 配置运行良好。但是我的担忧是我无法向 GCM 注册令牌发送推送通知。当我尝试通过 Firebase 控制台向旧的 GCM 注册令牌发送推送时,它会失败。你能提供任何建议吗? - Anmol
@ArthurThompson 我只是使用InstanceID来生成GCM注册令牌。 - Anmol
一旦您使用InstanceID生成令牌,您就可以使用FCM向所有客户端发送消息。GCM和FCM都使用InstanceID令牌,因此从API或Firebase控制台上来看,客户端之间没有区别。 - Arthur Thompson
1
@ArthurThompson 我可以成功地向 FCM 注册令牌发送推送,但是当我在 Firebase 通知控制台中输入任何 GCM 注册令牌时,它会显示“失败”。 - Anmol
显示剩余3条评论
4个回答

1

我搜寻了很多,但是没找到令人满意的答案。所以,我用了这个修复方法。

我继续使用之前用来发送推送通知给GCM用户的旧方法,并且对于通过FCM注册的用户,我能够通过FCM或Firebase Notification console向他们发送推送通知。

顺便说一下,你无法通过FCM向GCM注册令牌发送推送通知。


你的应用程序中同时实现了GCM和FCM吗?它们都能正常工作吗? - Marie Amida
@MarieAmida 用户使用旧版本应用程序中的 GCM,新用户使用 FCM。因此,现在我正在使用服务器端实现同时向令牌发送推送的FCM和GCM。此外,对我来说它运行良好。 - Anmol

1

1
我已经迁移并且新的fcm配置运行良好。 但是我的担忧是我无法向GCM注册令牌发送推送通知。当我尝试通过Firebase控制台将推送发送到旧的gcm注册令牌时,它会失败。你能提供任何建议吗? - Anmol

0

我已经在相同的场景下进行了POC测试,我所观察到的如下:

当您尝试将GCM迁移到FCM时,客户端不需要进行任何代码更改,我已经在Android和iOS上进行了测试,一切正常。唯一需要更改的是在FCM控制台中进行适当的配置(即提供正确的bundle id和project id(senderid))。


-1

实际上,FCM和GCM是同一架构下的服务。通过GCM获取到的令牌同样适用于FCM。

通过GoogleCloudMessaging.register()或InstanceID.getToken()检索到的GCM令牌可以在FCM中继续使用,无需做任何修改或更新。

您需要做的就是按照这里提供的方法更改客户端实现,并将服务器端点更新为fcm.googleapis.com/fcm/


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