繁体   English   中英

Firebase:如何将设备令牌转换为FCM令牌

[英]Firebase: How to translate a device token into a FCM token

我正在尝试使用Firebase进行推送通知。 但是,我遇到了障碍,即我无法在iOS中执行该操作。 我尝试了两种方法

Messaging.messaging().setAPNSToken(deviceToken, type: .prod) and InstanceID.instanceID().setAPNSToken(deviceToken, type: InstanceIDAPNSTokenType.sandbox)

在第二

application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data)

带有Firebase导入。

我该怎么办?

编辑:这是一个补充信息,错误消息是这样的。 无法获取默认令牌错误Domain = com.firebase.iid代码= 1003我搜索了“(空)” ,但没有相关信息。

所以你接近了。 这是Firebase 4.0版本的Cloud Messaging中目前发生的情况...

  1. 当您调用application.registerForRemoteNotifications() ,iOS将请求APNs证书,就像任何其他iOS应用程序一样。

  2. 假设您尚未关闭(可能尚未关闭)方法,Firebase会自动以其自己经过didRegisterForRemoteNotificationsWithDeviceToken方法将APNs令牌交换为FCM令牌。

  3. 交换完成后,火力地堡可以让你的应用程序知道。 过去,这样做的唯一方法是创建类型为kFIRMessagingRegistrationTokenRefreshNotification的NSNotification。 但是这些天,它也可以通过MessagingDelegate通知您。 因此,最简单的方法是通过调用...来声明您的AppDelegate消息传递委托。

     Messaging.messaging().delegate = self 

    ...然后实现messaging(_:didRefreshRegistrationToken)方法。

     func messaging(_ messaging: Messaging, didRefreshRegistrationToken fcmToken: String) { print("Look! I have an FCM token! \\(fcmToken)") } 

因此,tl; dr是您不需要手动将APNs令牌交换为FCM令牌,只需要设置您的代理即可在FCM库为您完成此操作时收到通知。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM