Firebase InstanceId未解析的标识符swift4

时间:2018-06-08 12:01:40

标签: ios swift firebase firebase-cloud-messaging

我最近更新了我的SWIFT应用程序pod文件,因为firebase版本现在更新为5.2。 现在,在获取设备实例ID时,会出现以下错误。

let tokenId = InstanceID.instanceID().token()

错误:使用未解析的标识符' InstanceID'

以前这段代码工作正常,我正在获取应用程序的实例ID。

以下是我的pod文件的内容。

   # Uncomment the next line to define a global platform for your project
# platform :ios, '11.2'

target 'FirebaseChat' do
  # Comment the next line if you're not using Swift and don't want to use dynamic frameworks
  use_frameworks!

  # Pods for FirebaseChat

pod 'Firebase/Database'
pod 'Firebase/Auth'
pod 'Firebase/Storage'
pod 'UnderLineTextField', '~> 2.0'
pod 'Alamofire'
pod 'TCPickerView'
pod 'Toast-Swift', '~> 3.0.1'
pod 'IQKeyboardManagerSwift'
end

任何建议都会有所帮助。 谢谢。

4 个答案:

答案 0 :(得分:5)

Firebase尚未更新其文档,但随后已更新其api以获取实例ID

import FirebaseInstallations

然后

Installations.installations().authToken { (installationsAuthTokenResult, error) in
    if let authError = error {
            print(authError.localizedDescription)
    } else {
            print(installationsAuthTokenResult?.authToken.description)
    }
}

有关更多信息,请检查Firebase团队对此link的确认。

答案 1 :(得分:3)

您应该导入FirebaseInstanceID

  import FirebaseInstanceID

答案 2 :(得分:1)

语法已在最新更新中更改

if let refreshedToken = FIRInstanceID.instanceID().token() {
        print("InstanceID token: \(refreshedToken)")
    }

答案 3 :(得分:0)

Firebase在FirebaseInstanceID更新中更改了令牌,因此现在 它们更改了获取令牌的语法

尝试

InstanceID.instanceID().instanceID(handler: { (result, error) in
            if let error = error{
                print("Error fetching remote instange ID(Token): \(error)")
            }else if let result = result{
                print("Remote instance ID token: \(result.token)")

            }
        })

希望这会有所帮助 预先感谢