输入'NSNotification.Name?'没有成员'firInstanceIDTokenRefresh'

时间:2017-06-10 18:49:01

标签: ios swift firebase firebase-cloud-messaging

我在使用Swift的iOS应用中使用Firebase通知,最近我将Firebase Messaging从1.2.3更新为2,我的代码开始向左右中心突破。我解决了大部分问题,但我坚持使用这个问题。

以下是我的AppDelegate应用程序功能部分,它导致了我的问题:

 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    UIApplication.shared.statusBarStyle = .lightContent
    ...

    FirebaseApp.configure()

    // [START add_token_refresh_observer]
    // Add observer for InstanceID token refresh callback.
    NotificationCenter.default.addObserver(self,
                                           selector: #selector(self.tokenRefreshNotification),
                                           name: .firInstanceIDTokenRefresh,
                                           object: nil)
    // [END add_token_refresh_observer]

    return true
}

当我尝试运行我的应用时,出现以下错误:

  

输入'NSNotification.Name?'没有成员'firInstanceIDTokenRefresh'

是否已将firInstanceIDTokenRefresh重命名为其他内容?

1 个答案:

答案 0 :(得分:14)

此通知似乎已被委托方法替换。

Firebase Cloud Messaging文档提到了如何监控令牌生成:

  

监控令牌生成

     

要在更新令牌时收到通知,请提供符合FIRMessagingDelegate协议的委托。以下示例注册委托并添加适当的委托方法:

func messaging(_ messaging: Messaging, didRefreshRegistrationToken fcmToken: String) {
    print("Firebase registration token: \(fcmToken)")
}

修改

文档还提到仍然可以使用通知,现在称为Notification.Name.MessagingRegistrationTokenRefreshed