[英]Swift app crashes when uploading image to firebase
我正在尝试获取我选择的视频的缩略图。
它似乎确实创建了缩略图,但在将其上传到firebase时崩溃了
我相信它会在thumbnailStorageRef
崩溃。
这是相关的代码:
guard let imagePickerUrl = info[UIImagePickerControllerMediaURL] as? URL else { return }
let videoUrl = imagePickerUrl
// Generate image thumbnail.
let asset: AVAsset = AVAsset(url: videoUrl as URL)
let imageGenerator = AVAssetImageGenerator(asset: asset)
imageGenerator.appliesPreferredTrackTransform = true
var time = asset.duration
time.value = min(time.value, 3)
do {
let thumbnailImage = try imageGenerator.copyCGImage(at: time , actualTime: nil)
let image = UIImage(cgImage: thumbnailImage)
let imageData = UIImagePNGRepresentation(image)!
let thumbnailStorageRef = FIRStorage.storage().reference()
thumbnailStorageRef.child("thumbnails/" + randomString(length: 20) + ".png")
thumbnailStorageRef.put(imageData, metadata: nil, completion: { (thumbnailMeta, error) in
if error != nil {
print("An error has occured while uploading thumbnail:",error ?? "")
} else {
print("Thumbnail upload to database was successfull", thumbnailMeta?.downloadURL() ?? "")
}
})
} catch {
print("An error has occurred while making thumbnail:")
}
崩溃错误控制台时说:
2017-08-11 17:19:08.656 Koala [17914:491998] *由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:'* - [__ NSPlaceholderDictionary initWithObjects:forKeys:count:]:尝试从对象插入nil对象[ 1]'***第一次投掷堆栈:
我不知道这个错误消息试图说什么,也许是试图上传的图片是零? 我不确定。
您似乎忘记使用刚刚创建的子存储节点。 因此,请尝试替换此代码:
thumbnailStorageRef.child("thumbnails/" + randomString(length: 20) + ".png")
thumbnailStorageRef.put(imageData, metadata: nil, completion: ...
改为:
let imageRef = thumbnailStorageRef.child("thumbnails/" + randomString(length: 20) + ".png")
imageRef.put(imageData, metadata: nil, completion: ...
此更改应修复您当前的问题;)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.