【发布时间】:2019-10-15 16:17:53
【问题描述】:
我正在将 FCM 集成到我的 iOS 应用中。我在向后端服务器发送令牌时收到此错误:
无效参数:令牌原因:iOS设备令牌不能超过400个十六进制字符
在我的代码中,我将 FCM 注册令牌发送到服务器。它是否正确?还是我应该发送设备令牌?如果有,这个 FCM 注册令牌有什么用?
在这方面需要帮助。
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
//Get FCM registration token
[[FIRInstanceID instanceID] instanceIDWithHandler:^(FIRInstanceIDResult * _Nullable result,
NSError * _Nullable error) {
if (error != nil) {
NSLog(@"Error fetching remote instance ID: %@", error);
} else {
NSLog(@"Remote instance ID token: %@", result.token);
[UserDefaultUtility setDeviceToken:result.token];
}
}];
}
#pragma mark - FCM delegate
- (void)messaging:(FIRMessaging *)messaging didReceiveRegistrationToken:(NSString *)fcmToken {
// Note: This callback is fired at each app startup and whenever a new token is generated.
NSLog(@"FCM registration token: %@", fcmToken);
[UserDefaultUtility setDeviceToken:fcmToken];
}
我在模拟器上做这个,有影响吗?
【问题讨论】:
-
您将此令牌发送到哪个后端服务器?它是否明确期待 iOS 令牌? FCM 注册令牌是您设备的 firebase 令牌,与您的实际设备令牌不同。
-
@HirdayGupta 后端服务器是我们自己的 CMS 后端服务器。以前在使用 Firebase 之前,应用程序从 didRegisterForRemoteNotificationsWithDeviceToken 方法发送设备令牌。所以我想用同样的方法发送 FCM 令牌。设备令牌仅用于向特定用户发送有针对性的通知。因此,应用程序正在将设备令牌发送到服务器,以供服务器端用于确定向谁发送通知。那是在使用 FCM 之前。现在我们想使用 FCM 来推送通知,那么应该发送 FCM 令牌还是设备令牌?
标签: ios firebase push-notification firebase-cloud-messaging