【发布时间】:2019-01-30 07:16:39
【问题描述】:
我正在尝试将存储在 Firebase 存储中的图像的下载 URL 保存在数据库中。我查看了here 和here,但出现以下错误:
无法将类型“Void”的值强制转换为类型“[String : String]”
这发生在下面指示的行:
storageRef.downloadURL { (url, error) in
guard let downloadURL = url else {
// Uh-oh, an error occurred!
return
}
//database integration
let ref = Database.database().reference()
let usersRef = ref.child("usersPosts")
let uid = Auth.auth().currentUser?.uid
let newUserRef = usersRef.child(uid!).child("post\(takePicViewController().finalPost + PhotoArray.sharedInstance.numberPost)")
PhotoArray().dowloadImgUrls.append(("\(downloadURL)"))
let downloadUrlArray = PhotoArray().dowloadImgUrls
var value = newUserRef.setValue(["Image\(self.number)": "\(downloadUrlArray)"])// WARNING IS HERE
addImageURLToDatabase(uid: uid!, values: value as [String : String]) // ERROR IS HERE
在我将在下面列出以供参考的这一行(尽管上面也指出)正在收到警告,也在下面找到。
var value = newUserRef.setValue(["Image\(self.number)": "\(downloadUrlArray)"])
变量“值”推断为“Void”类型,这可能是意外的
编辑:我忘记包含被调用的函数:
func addImageURLToDatabase(uid:String, values:[String:String]) {
let ref = Database.database().reference()
let usersReference = ref.child("usersPosts").child((Auth.auth().currentUser?.uid)!)
usersReference.updateChildValues(values) { (error, ref) in
if (error != nil) {
print(error)
return
}
}
}
感谢您的帮助!
【问题讨论】:
标签: ios iphone swift firebase firebase-realtime-database