更新 Firebase 后在 swift 项目中找不到“InstanceID”和“InstanceID TokenHandler”

Posted

技术标签:

【中文标题】更新 Firebase 后在 swift 项目中找不到“InstanceID”和“InstanceID TokenHandler”【英文标题】:Cannot fin 'InstanceID' and 'InstanceIDTokenHandler' on swift project after updated Firebase 【发布时间】:2021-07-02 13:22:22 【问题描述】:

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

文件1.swift:

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

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

文件2.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”

【问题讨论】:

【参考方案1】:

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

FCM 用于定位消息的新令牌称为安装 ID。您可以通过调用 Messaging.messaging().tokenget the current token 为您的应用实例提供服务。

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

【讨论】:

以上是关于更新 Firebase 后在 swift 项目中找不到“InstanceID”和“InstanceID TokenHandler”的主要内容,如果未能解决你的问题,请参考以下文章

致命错误:集成 firestore 后在 Flutter iOS 构建中找不到“openssl/x509.h”文件

Firebase Swift - 当搜索控制器过滤结果时,实时更新不起作用

使用 Swift 更新 Firebase 中的子值

在firebase,swift项目中编辑信息

Swift 2.3 pod 更新后使用未解析的标识符 Firebase 'FIR'

无法从“firebase.js”解析模块“firebase”:在项目中找不到 Firebase