【问题标题】:Swift4 : Download photo from FirebaseSwift4:从 Firebase 下载照片
【发布时间】:2018-03-20 14:02:29
【问题描述】:

我想下载一张之前从 Firebase 上传的照片。我正在使用以下代码:

    fbUser = Auth.auth().currentUser
    let storage = Storage.storage()
    let storageRef = storage.reference(forURL: "somepath.some")
    let profilePicRef = storageRef.child(fbUser.uid+"_profile_pic.jpg")

    var imageFB : UIImage? = nil

    profilePicRef.downloadURL(completion: { (url, error) in

        if error != nil {
            print(error!)
            return
        }

        URLSession.shared.dataTask(with: url!, completionHandler: { (data, response, error) in

            if error != nil {
                print(error!)
                return
            }

            guard let imageData = UIImage(data: data!) else { return }

            DispatchQueue.main.async {
                imageFB = imageData
            }

        }).resume()

    })

照片在那里 - 如果我删除照片,则会收到文件丢失的错误消息。但是,下载后,imageFB 始终等于 nil,即使照片在那里。

关于如何解决这个问题的任何建议?

【问题讨论】:

    标签: ios swift firebase swift4


    【解决方案1】:

    Firebase 包含 FirebaseUI,它有助于管理图像下载/缓存。按照文档,您应该能够通过几行简单的代码下载并显示图像。

    我建议你看看documentation。该链接将带您进入图像下载部分,其中包含有关如何安装和使用它的示例。

    【讨论】:

      【解决方案2】:

      试试这个让我们知道是否有效。

       fbUser = Auth.auth().currentUser
       let storage = Storage.storage()
       let storageRef = storage.reference(forURL: "somepath.some")
       let profilePicRef = storageRef.child(fbUser.uid+"_profile_pic.jpg")
      
      // give your db ref var here
       let ref = Database.database().reference()
       let usersRef = ref.child("users").child(uid!)
      
       var picArray: [UIImage]()
      

      下载:

      usersRef.observeEventType(.ChildAdded, withBlock: { (snapshot) in
      
        // Get download URL from snapshot
        let downloadURL = snapshot.value() as! String
      
        profilePicRef.downloadURL(completion: { (url, error) in
                  let data = Data(contentsOf: url!)
                  let image = UIImage(data: data! as Data)
                  picArray.append(image)
        })
      })
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-10-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-11-15
        相关资源
        最近更新 更多