错误代码“无法分配'Void类型的值'

时间:2018-08-30 20:44:13

标签: ios swift firebase firebase-storage

此代码无法访问Firebase数据库中的照片。我收到的错误是“无法分配'无效'类型的值?键入“字符串!””

self.fileURL = metadata?.storageReference?.downloadURL(completion: error as! (URL?, Error?) -> Void)
let changeRequestPhoto = user?.user.createProfileChangeRequest()
changeRequestPhoto?.photoURL = NSURL(string: self.fileURL)! as URL
changeRequestPhoto?.commitChanges(completion: {(error) in         
    if let error = error {
        print (error.localizedDescription)
        return
    }
    else {
        print ("Sweet!")
    }               
})

3 个答案:

答案 0 :(得分:2)

该错误表明from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.ui import WebDriverWait as wait driver.get("https://www.realestate.com.kh/buy/?listing_type=sale&categories=Condo&order_by=relevance&is_certified=1&private_seller=1#page-10") wait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it(driver.find_element_by_tag_name("iframe"))) driver.find_element_by_id("leadpages-close-button").click() 没有返回值。它使用完成处理程序从异步任务返回数据

我不熟悉Firebase,但API的语法似乎很

downloadURL

答案 1 :(得分:1)

在第一行中,我假设self.fileURL是您所引用的String,但是您尝试为其分配metadata?.storageReference?.downloadURL的输出,该输出返回{{1 }}。

您需要从完成区中获取Void,如下所示。请注意,此示例直接取自Firebase's documentation

url

答案 2 :(得分:1)

您需要为第一行添加适当的完成处理

starsRef.downloadURL { url, error in
  if let error = error {
    // Handle any errors
  } else {
    // Get the download URL for 'images/stars.jpg'
  }
}