我最近更新了我的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
任何建议都会有所帮助。 谢谢。
答案 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)")
}
})
希望这会有所帮助 预先感谢