【问题标题】:Error code "Cannot assign value of type 'Void"错误代码“无法分配“无效”类型的值
【发布时间】:2018-08-30 20:44:13
【问题描述】:

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

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!")
    }               
})

【问题讨论】:

    标签: ios swift firebase firebase-storage


    【解决方案1】:

    错误提示downloadURL 没有返回值。它使用完成处理程序从异步任务中返回数据

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

    metadata?.storageReference?.downloadURL( completion: { (url, error) in
        let changeRequestPhoto = user?.user.createProfileChangeRequest()
        changeRequestPhoto?.photoURL = url
        changeRequestPhoto?.commitChanges(completion: { error in
            if let error = error {
                print (error.localizedDescription)
                return
            }
            else {
                print ("Sweet!")
            }
        })
    })
    

    【讨论】:

      【解决方案2】:

      在第一行,我假设self.fileURL 是您引用的String,但您正试图将metadata?.storageReference?.downloadURL 的输出分配给它,它返回Void

      您需要从完成块中获取url,如下所示。注意,这个例子直接取自Firebase's documentation

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

      【讨论】:

        【解决方案3】:

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

        self.fileURL = metadata?.storageReference?.downloadURL(completion: { (url, error) in
            if (error == nil) {
               //do something with the url
            } else {
              // error handling
            }
         })
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多