Firebase Cloud Messaging - 是否仍然需要 GCM 规范 ID?
Firebase Cloud Messaging - Are GCM canonical IDs still necessary?
我一直在阅读 GCM 中的规范 ID 以及它们如何帮助纠正发送重复推送通知并确保安全。但是现在有了 Firebase Cloud Messaging (FCM),这个问题还存在吗?
我是注册部分现在已经从开发人员那里拿走了,我们只需要按照以下方式等待令牌刷新:
public class MyFirebaseInstanceIDService extends FirebaseInstanceIdService {
@Override
public void onTokenRefresh() {
// Get updated registration ID
String refreshedToken = FirebaseInstanceId.getInstance().getToken();
Logger.d("Refreshed FCM token: " + refreshedToken);
}
}
可以找到有关规范 ID 的一些信息 here。
更新:
我最近重新审视了这个关于规范 ID 的主题并得出以下结论。
在 FCM 中,由于 Instance ID service 的工作方式,似乎不再使用规范 ID(或者至少极少使用)。简而言之,该服务的工作原理是每个应用程序实例只有一个有效令牌。
如果旧令牌过期(无论出于何种原因),FCM 会触发 tokenRefresh 事件,您将在其中获得新的注册令牌,并且您还必须相应地处理它(在 onTokenRefresh()
中)。
简答,是的。还是很有必要的。
onTokenRefresh()
方法预计会在令牌实际刷新时触发。从那里开始,开发人员有责任将注册令牌发送到应用服务器。
BUT 在您无法获得新注册令牌的情况下(例如忘记保存、删除它并且只有以前的注册令牌)等),这可能会导致您(开发人员)发送一个应该不再有效的注册令牌。这就是 Canonical ID 的用武之地。
我想您可以将 Canonical ID 视为另一种安全措施,以便开发人员仍然可以获得有效的注册令牌。 FCM 文档 here.
中提到了有关 Canonical ID 的详细信息(它是如何处理的)
我一直在阅读 GCM 中的规范 ID 以及它们如何帮助纠正发送重复推送通知并确保安全。但是现在有了 Firebase Cloud Messaging (FCM),这个问题还存在吗?
我是注册部分现在已经从开发人员那里拿走了,我们只需要按照以下方式等待令牌刷新:
public class MyFirebaseInstanceIDService extends FirebaseInstanceIdService {
@Override
public void onTokenRefresh() {
// Get updated registration ID
String refreshedToken = FirebaseInstanceId.getInstance().getToken();
Logger.d("Refreshed FCM token: " + refreshedToken);
}
}
可以找到有关规范 ID 的一些信息 here。
更新:
我最近重新审视了这个关于规范 ID 的主题并得出以下结论。
在 FCM 中,由于 Instance ID service 的工作方式,似乎不再使用规范 ID(或者至少极少使用)。简而言之,该服务的工作原理是每个应用程序实例只有一个有效令牌。
如果旧令牌过期(无论出于何种原因),FCM 会触发 tokenRefresh 事件,您将在其中获得新的注册令牌,并且您还必须相应地处理它(在 onTokenRefresh()
中)。
简答,是的。还是很有必要的。
onTokenRefresh()
方法预计会在令牌实际刷新时触发。从那里开始,开发人员有责任将注册令牌发送到应用服务器。
BUT 在您无法获得新注册令牌的情况下(例如忘记保存、删除它并且只有以前的注册令牌)等),这可能会导致您(开发人员)发送一个应该不再有效的注册令牌。这就是 Canonical ID 的用武之地。
我想您可以将 Canonical ID 视为另一种安全措施,以便开发人员仍然可以获得有效的注册令牌。 FCM 文档 here.
中提到了有关 Canonical ID 的详细信息(它是如何处理的)