首页 > 解决方案 > 更新 Firebase 后,无法在 swift 项目上找到“InstanceID”和“InstanceIDTokenHandler”

问题描述

我有一个需要更新 Firebase 的旧项目,所以我做到了。之后,我得到两个错误,我不明白如何解决它们。请问有人可以帮我吗?

文件1.swift:

func token(withAuthorizedEntity authorizedEntity: String, scope: String, options: [AnyHashable: Any]? = nil, handler: @escaping InstanceIDTokenHandler) {
    
}

错误:在范围内找不到类型“InstanceIDTokenHandler”

File2.swift

func checkDeviceToken() {
    let hasDeviceToken: Bool      =  self.devicesTokenUseCase.hasDeviceToken()
    let dontHaveDeviceToken: Bool = !hasDeviceToken

    InstanceID.instanceID().instanceID { (result, _) in
        if let result = result {
            let isNotSameToken: Bool = !self.devicesTokenUseCase.isSameDeviceToken(deviceToken: result.token)

            if hasDeviceToken && isNotSameToken {
                self.updateDeviceToken(token: result.token)
            } else if dontHaveDeviceToken {
                self.sendDeviceToken(token: result.token)
            }
        } else {
            self.checkDeviceToken()
        }
    }
}

错误:在范围内找不到“InstanceID”

标签: iosswiftfirebasefirebase-cloud-messaging

解决方案


实例 ID 已被弃用,并在最近的 SDK 版本中被删除。

FCM 用于定位消息的新令牌称为安装 ID。您可以通过调用来获取您的应用实例的当前令牌Messaging.messaging().token

拿到token后,就可以和之前一样对待了。


推荐阅读