GCM转iOS中的FCM

时间:2019-02-06 06:04:35

标签: ios swift firebase firebase-cloud-messaging

我使用FirebaseInstanceID框架来获取令牌。

当前实现如下:

InstanceID.instanceID().token(withAuthorizedEntity: <GCM_SENDER_ID>, scope: "GCM", options: nil) { (token, error) in
}

我唯一的要求是从Firebase获取令牌仅用于身份验证。

上述实现不需要添加GoogleService-Info.plist和任何其他框架。

问题是Google已弃用GCM。

如果我将范围从"GCM"更改为"FCM",则会返回错误1001。 另外,如果我将withAuthorizedEntity从<GCM_SENDER_ID>更改为<PROJECT_ID>,则会出现错误1001。

那么,有什么方法可以仅使用FCM来获取令牌?另外,我对发送推送通知没有其他要求。 TIA

1 个答案:

答案 0 :(得分:2)

我认为您可以尝试使用docs以正确的方式进行迁移,但是在这种情况下,您应该添加GoogleService-Info.plist和必需的框架。

根据错误代码,问题是导致Firebase在获取APNS令牌时失败,这意味着您应在收到FCS令牌后设置APNS令牌。 您有两种方法可以做到:

  1. Messaging.messaging().apnsToken = deviceTokenfunc application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) {}
  2. 或者使用他们的Swizzling method

此答案无法帮助您以所需的方式进行修复,但是如果您想快速修复它,可以尝试使用类似的选项。

希望它以正确的方式指导您。

其他:

  

除非需要启用多个发件人,否则请避免调用.getToken(authorizedEntity,scope)。改用instanceIDWithHandler:。

Similar question