微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

swift – FIRInstanceID.instanceID().token()和Messaging.messaging()之间有什么区别.fcmToken?

我正在我的应用中实施Firebase推送通知.在一个教程中,我发现我从Messaging.messaging().fcmToken获取了令牌,在 this SO问题中我发现了这种方法:FIRInstanceID.instanceID().token()

他们之间有什么区别?我唯一的目标是能够向我的后端人员发送令牌,以便他们可以在数据库中识别我的推送通知.目前生成令牌的代码是:

func application(_ application: UIApplication,didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

    if #available(iOS 10.0,*) {
        // For iOS 10 display notification (sent via APNS)
        UNUserNotificationCenter.current().delegate = self
        let authOptions: UNAuthorizationoptions = [.alert,.badge,.sound]
        UNUserNotificationCenter.current().requestAuthorization(
            options: authOptions,completionHandler: {_,_ in })
        // For iOS 10 data message (sent via FCM
        Messaging.messaging().delegate = self
    } else {
        let settings: UIUserNotificationSettings =
            UIUserNotificationSettings(types: [.alert,.sound],categories: nil)
        application.registerUserNotificationSettings(settings)
    }

    application.registerForRemoteNotifications()

    FirebaseApp.configure()
    let token = Messaging.messaging().fcmToken
    setFCM(token: token ?? "UNDEFINED") //a function that saves it in user defaults.
    print("FCM token: \(token ?? "")")
    return true
}

解决方法

调用其中任何一个都应该返回相同的注册令牌.

不同之处在于FIRInstanceID仅具有与注册令牌相关的方法(例如,获取删除令牌),而消息传递(也称为FIRMessagingnaming changes)通常提供更多方法(例如,订阅主题,发送上游消息).

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐