在 android 从 gcm 迁移到 fcm
Migrating from gcm to fcm on android
我想在 android 应用程序中从 gcm 迁移到 fcm。
我是否需要从 gcm 向 android 应用程序的老用户发送推送通知,或者我可以从服务器通过新的 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>
我想你可以通过FCM发送。要了解有关 FCM 的更多信息,您可以查看 frequently asked questions about GCM to FCM 的文档。此外,如果您开始从 GCM 迁移到 FCM,您可以按照以下教程操作:
还有更多信息,你可以查看这个。
我搜索了很多,但没有找到满意的答案。所以,我应用了这个修复程序。
我将继续使用我用来向 GCM 用户发送推送通知的旧方法,对于通过 FCM 注册的用户,我可以通过 FCM 或 Firebase 通知控制台向他们发送推送通知。
P.S。您无法通过 FCM 向 GCM 注册令牌发送推送通知。
实际上它确实有效 FCM 和 GCM 在同一引擎下。 GCM 的令牌也适用于 FCM。
GCM tokens retrieved via GoogleCloudMessaging.register() or
InstanceID.getToken() will continue to work in FCM without any
modification or renewal.
您需要做的就是更改客户端实现,如前所述here。并将您的服务器端点更新为 fcm.googleapis.com/fcm/
我已经对相同的场景进行了 POC,下面给出了我观察到的结果
"There is no code change require from client side when you trying to
migrate GCM to FCM, and i have tested in both Android and iOS it's
working fine. Only change require to do proper configuration in FCM
console (i.e give correct bundle id and project id (senderid))"
我想在 android 应用程序中从 gcm 迁移到 fcm。 我是否需要从 gcm 向 android 应用程序的老用户发送推送通知,或者我可以从服务器通过新的 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>
我想你可以通过FCM发送。要了解有关 FCM 的更多信息,您可以查看 frequently asked questions about GCM to FCM 的文档。此外,如果您开始从 GCM 迁移到 FCM,您可以按照以下教程操作:
还有更多信息,你可以查看这个
我搜索了很多,但没有找到满意的答案。所以,我应用了这个修复程序。
我将继续使用我用来向 GCM 用户发送推送通知的旧方法,对于通过 FCM 注册的用户,我可以通过 FCM 或 Firebase 通知控制台向他们发送推送通知。
P.S。您无法通过 FCM 向 GCM 注册令牌发送推送通知。
实际上它确实有效 FCM 和 GCM 在同一引擎下。 GCM 的令牌也适用于 FCM。
GCM tokens retrieved via GoogleCloudMessaging.register() or InstanceID.getToken() will continue to work in FCM without any modification or renewal.
您需要做的就是更改客户端实现,如前所述here。并将您的服务器端点更新为 fcm.googleapis.com/fcm/
我已经对相同的场景进行了 POC,下面给出了我观察到的结果
"There is no code change require from client side when you trying to migrate GCM to FCM, and i have tested in both Android and iOS it's working fine. Only change require to do proper configuration in FCM console (i.e give correct bundle id and project id (senderid))"