Jos*_*oid 5 ios swift firebase-storage
我正在编写一个 Swift 扩展FIRStorageReference来检测文件是否存在。我在打电话metadataWithCompletion()。如果NSError未设置完成块的 optional ,我认为可以安全地假设该文件存在。
如果设置了 NSError,要么出现问题,要么文件不存在。关于在 iOS 中处理错误的存储文档指出这FIRStorageErrorCodeObjectNotFound是我应该检查的错误类型,但没有解决(可能 Swiftified 为更短的 .Name 样式常量?)而且我不确定我应该是什么检查它。
completion(nil, false)如果FIRStorageErrorCodeObjectNotFound设置在某处,我想打电话。
到目前为止,这是我的代码。
extension FIRStorageReference {
func exists(completion: (NSError?, Bool?) -> ()) {
metadataWithCompletion() { metadata, error in
if let error = error {
print("Error: \(error.localizedDescription)")
print("Error.code: \(error.code)")
// This is where I'd expect to be checking something.
completion(error, nil)
return
} else {
completion(nil, true)
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
提前谢谢了。
您可以像这样检查错误代码:
// Check error code after completion
storageRef.metadataWithCompletion() { metadata, error in
guard let storageError = error else { return }
guard let errorCode = FIRStorageErrorCode(rawValue: storageError.code) else { return }
switch errorCode {
case .ObjectNotFound:
// File doesn't exist
case .Unauthorized:
// User doesn't have permission to access file
case .Cancelled:
// User canceled the upload
...
case .Unknown:
// Unknown error occurred, inspect the server response
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4648 次 |
| 最近记录: |