【问题标题】:absolute string -> "Value of type 'StorageMetadata' has no member 'downloadURL'"绝对字符串->“‘StorageMetadata’类型的值没有成员‘downloadURL’”
【发布时间】:2026-02-14 17:25:03
【问题描述】:

刚刚更新了新的firebase,现在我在第10行得到了上述错误...... 它在 firebase 3 和 4 下工作,但由于他们删除了 downloadURL,它不再在第五版中工作......请不要重复这个问题或类似问题,因为我已经在互联网上尝试过任何解决方案,但没有任何效果......

fileprivate func handleVideoSelectedForUrl(_ url: URL) {
    let filename = UUID().uuidString + ".mov"
    let uploadTask = Storage.storage().reference().child("message_movies").child(filename).putFile(from: url, metadata: nil, completion: { (metadata, error) in

        if error != nil {
            print("Failed upload of video:", error!)
            return
        }

        if let videoUrl = metadata?.downloadURL()?.absoluteString {
            if let thumbnailImage = self.thumbnailImageForFileUrl(url) {
                self.uploadToFirebaseStorageUsingImage(thumbnailImage, completion: { (imageUrl) in
                    let properties: [String: AnyObject] = ["imageUrl": imageUrl as AnyObject, "imageWidth": thumbnailImage.size.width as AnyObject, "imageHeight": thumbnailImage.size.height as AnyObject, "videoUrl": videoUrl as AnyObject]
                    self.sendMessageWithProperties(properties)

                })
            }
        }
    })

【问题讨论】:

    标签: swift firebase


    【解决方案1】:

    // 在 putData 响应更接近 您可以使用以下更新的代码获取 downloadURL

    metadata?.storageReference?.downloadURL(completion: { (url, error) in
                  print(url)
                })
    

    在此之前你可以像退休一样退休

    metadata?.downloadURL()
    

    【讨论】:

    • 也添加一些解释