无法将图像上传到 Firebase 存储

问题描述 投票:0回答:1

我使用图像选择器,以便用户可以将图像从库上传到他们的帖子。然后我想将图片保存在Firestore存储中,通过以下代码:

public typealias UploadPictureCompletion = (Result<String, Error>) -> Void
public func uploadEventHeaderImage(with data: Data, fileName: String, completion: @escaping UploadPictureCompletion){
        bucket.child("event_images/\(fileName)").putData(data, metadata: nil, completion: {metadata, error in
            
            guard error == nil else{
                //failed
                print("failed to upload event image to firebase")
                completion(.failure(StorageErrors.failedToUpload))
                return
            }
            
            self.bucket.child("event_images/\(fileName)").downloadURL(completion: {url, error in
                guard let url = url else{
                    print("failed to get download url from firebase")
                    completion(.failure(StorageErrors.failedToGetDownloadURL))
                    return
                }
                let urlString = url.absoluteString
                print("download ur returned: \(urlString)")
                completion(.success(urlString))
            })
        })
        
    }

调用此函数时,我执行以下操作:

let filename = "\(eventId).png"
        guard let data = headerImage.pngData() else {
            
            return
            
        }
        
        
        StorageManager.shared.uploadEventHeaderImage(with: data,
                                                   fileName: filename,
                                                   completion: {result in
            switch result {
                
            case .success(let downloadUrl):
                UserDefaults.standard.set(downloadUrl, forKey: "event_image_url")
                print(downloadUrl)
            case .failure(let error):
                print("Storage manager error: \(error)")
            }
        })

在 Firebase Storage 中,我创建了一个名为“event_images”的文件夹。运行代码时,出现错误“无法将事件图像上传到 firebase”。这种情况下可能出现什么问题?

ios swift firebase uiimage firebase-storage
1个回答
0
投票
guard error == nil else{
                //failed
                print("failed to upload event image to firebase -- \(error)")
                completion(.failure(StorageErrors.failedToUpload))
                return
}

失败的可能原因有很多。打印出错误消息本身也将帮助您获得更准确的信息。

© www.soinside.com 2019 - 2024. All rights reserved.