【发布时间】:2017-12-01 20:57:25
【问题描述】:
在写问题之前,我想说我是 iOS 开发和 firebase 的新手 :) 这就是为什么我提前为一个愚蠢的问题道歉:)
当我以编程方式从 firebase 存储加载 profile.png 图像时,它会正确加载,没有任何问题。
static func getUserImage(_ uid: String, completion: @escaping (UIImage?, NSError?) -> Void) {
// Create a reference to the file you want to download.
let storage = FIRStorage.storage()
let userUID: String = String(describing: uid)
let storageRef = storage.reference(forURL: "...some address...")
let downloadRef = storageRef.child("\(userUID)/profilePhoto.png")
// Download in memory with a maximum allowed size of 10MB (10 * 1024 * 1024 bytes).
downloadRef.data(withMaxSize: 10 * 1024 * 1024) {
data, error in
guard let data = data, error == nil else {
NSLog("Retrieve image failed:\n\(error?.localizedDescription)")
completion(nil, error as! NSError)
return
}
guard let image = UIImage(data: data) else {
NSLog("Image decoding failed:\n\(data)")
completion(nil, nil)
return
}
assert(error == nil)
completion(image, nil)
}
}
但是当我在浏览器中转到 firebase 存储并尝试通过 uid 从列表中手动搜索时,我找不到它 - 它不存在。你能解释一下这怎么可能吗?这个问题只存在于 Firebase 存储中的几个图像。
提前谢谢你!
【问题讨论】:
-
存储控制台应该包含一个带有用户 UID 的“文件夹”,否则我不确定从哪里加载图像。你刷新控制台了吗?如果是这样,你能分享一下你看到的小截图吗?
-
@FrankvanPuffelen 是的,你说得对。我应该看到带有 UID 名称的“文件夹”。但它不存在。但是,当我尝试手动构建此文件夹的 url 并强制输入时(如下所示:{"some_url}/files%252FgoIRn08skBPuIFRhsN6cQv0erxx1%252F")我得到下一个屏幕 - screencast.com/t/uOSvxAxdaSI
标签: ios swift firebase firebase-storage