swift - metadata?.storageReference?.downloadURL() 返回 nil

标签 swift firebase metadata firebase-storage

我正在尝试下载一个 url 以存储在我的数据库中,但 Firebase 中的新更新要求我使用新的方法来下载 url,从而禁止我这样做。这是我的代码:

 let imageName = NSUUID().uuidString
 let storageRef = storage.reference().child("project_images").child("\(imageName)")

    guard let uplodaData = UIImageJPEGRepresentation(image, 1) else {
        return
    }


    let uploadTask = storageRef.putData(uplodaData, metadata: nil, completion: { (metadata, error) in

        if error != nil{
            print(error ?? "Failed to upload data in the uploadImages object there was an error:", error!)
            return
        }

如果我在这里放置一个断点,它不会继续到下一节,我不知道为什么。当存储在错误的节点或其他东西时,我通常会看到这些问题。

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


        if error != nil {
            print("Failed to download url:", error!)
            return
        }

        let url = "\(String(describing: url))"
        uploadedImageUrlsArray.append(url)

        uploadCount += 1
        if uploadCount == imagesCount{
            completionHandler(uploadedImageUrlsArray)
        }
    })
})

当我只是一个断点时,我可以在完成时检查错误变量,它是零。

有人可以告诉我我在这里做错了什么吗。

最佳答案

您为此特定图像创建了一个存储引用,因此使用它代替 metadata?.storageReference

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


    if error != nil {
        print("Failed to download url:", error!)
        return
    }

    let url = "\(String(describing: url))"
    uploadedImageUrlsArray.append(url)

    uploadCount += 1
    if uploadCount == imagesCount{
        completionHandler(uploadedImageUrlsArray)
    }
  })
})

关于swift - metadata?.storageReference?.downloadURL() 返回 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50515429/

相关文章:

ios - 删除 UINavigationBar 下的 1px 边框 - 不起作用

html - 如何将 HTML 标签添加到 UITextView Swift Xcode 中的字符串

ios - 我的应用程序由于未捕获的异常 'NSInvalidArgumentException' 而终止

ios - 使用AVAUDIOPLAYER从音频流中获取元数据

android - 手动获取 SHOUTcast 元数据

swift - 我可以通过 WatchConnectivity 获取此 iPhone 是否与 Apple Watch 连接的信息吗?

ios - 多个复选框选择并单独打印选中的行标题

android - Android 应用程序中的 Google 登录现在无法正常工作

ios - 发送 HTTP POST 请求时后台模式出现问题

java - 如何通过JDBC获取VIEW引用(基表)?