J. *_*Hoe 1 ios firebase swift
目前我正在保存存储在firebase数据库中的图像的url.但是我在网址之前得到了可选字.如下所示.
"可选(HTTPS:URL.HERE)"
以下是保存发生的代码块:
if let imageData = UIImageJPEGRepresentation(image, 0.8) {
let metadata = storageRef //.child("poop/")
let uploadTask = metadata.putData(imageData, metadata: nil) { (metadata, error) in
guard let metadata = metadata else {
// Uh-oh, an error occurred!
return
}
// You can also access to download URL after upload.
storageRef.downloadURL { (url, error) in
guard let downloadURL = url else {
// Uh-oh, an error occurred!
return
}
let imgURL = url
//database integration
let ref = Database.database().reference()
let usersRef = ref.child("usersPosts")
let uid = Auth.auth().currentUser?.uid
let newUserRef = usersRef.child(uid!)
//creates a child for email and password (i think we shud store password so we can tell sumone what it is inmediatly, maybe)
newUserRef.setValue(["Image": "\(imgURL)"])
}
}
// For progress
uploadTask.observe(.progress, handler: { (snapshot) in
guard let progress = snapshot.progress else {
return
}
let percentage = (Float(progress.completedUnitCount) / Float(progress.totalUnitCount))
progressBlock(Double(percentage))
})
} else {
completionBlock(nil, "Image could not be converted to Data.")
}
Run Code Online (Sandbox Code Playgroud)
你得到Optional...
因为imgURL
是可选的.并且imgURL
是可选的,因为您指定了url
它是可选的.
由于您已经url
在guard
语句中解包,因此只需使用downloadURL
而不是创建imgURL
.
去掉:
let imgURL = url
Run Code Online (Sandbox Code Playgroud)
而更换使用的imgURL
与downloadURL
它的正常展开版本url
从guard
.
newUserRef.setValue(["Image": "\(downloadURL)"])
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
57 次 |
最近记录: |