【问题标题】:Got nil when download image link from firebase从 firebase 下载图片链接时得到 nil
【发布时间】:2018-11-04 23:28:19
【问题描述】:

我尝试将多张图片从库上传到 Firebase 存储。上传过程完美,所有图像都在 Firebase 存储中,但是当我尝试下载图像 url 链接以保存在数据库中时,它显示为零。请帮我解决这个问题?非常感谢

for imageData in ArrayMedia {
    print(imageData)
    let filePath = "\(currentUserId)/\(key)"
    let data = UIImageJPEGRepresentation(imageData, 0.3)
    let metadata = StorageMetadata()
    metadata.contentType = "image/jpg"

    storageReference.child(filePath).putData(data!, metadata: metadata, completion: { (metaData, error) in
        print(metadata)
        if error != nil {
            print(error?.localizedDescription as Any)
        } else {
            let PhotoUrl = metadata.downloadURL()?.absoluteString // GOT NIL IN THIS LINE
            print(PhotoUrl)
            let value = ["Username" : currentUserName, "UserId" : currentUserId, "Text" : self.tvPost.text] as [String : Any]
            databaseReference.child("PendingPost").child(currentUserId).child(key).updateChildValues(value)
            databaseReference.child("PendingPost").child(currentUserId).child(key).child("Images").child(key).setValue(["PhotoUrl": PhotoUrl])
        }
        self.showAlert()
    })
}

【问题讨论】:

  • 打印metadata时,downloadURL会显示在控制台吗?
  • 它显示了这个 FIRStorageMetadata 0x60000015f740: { contentType = "image/jpg";名称=“A7IH5SmxnmXm8wGuJxR3XijP7Hl2/250520182102”; }

标签: swift firebase firebase-storage


【解决方案1】:

尝试改用这个:

storageRef.child(path).putData(data, metadata: metaData){ (metaData,error) in
            if let error = error {
                print(error.localizedDescription)
                return
            } else {
                let downloadURL = metaData!.downloadURL()!.absoluteString
            }
}

它对我有用。

【讨论】:

  • 完美答案,我的问题是我写错了变量。应该是元数据,而不是元数据。非常感谢
猜你喜欢
  • 2012-08-27
  • 2016-11-03
  • 2019-10-04
  • 1970-01-01
  • 2011-09-11
  • 2018-06-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多