检查从 Firestore 中检索到的文件是否为空
Check whether the file retrieved from Firestore is empty
我需要确保我始终可以从后端反馈一个 Image 对象,但问题是不能保证每个查询都可以使用以下函数获取图像。
let store = Storage.storage().reference()
let imageRef = store.child("profile_Photos").child(uid)
imageRef.getData(maxSize: 1000 * 64 * 64, completion: { (data, error) in
if let error = error {
print("Encountered error: \(error) when getting image")
self.currentPhoto = Image(systemName: "person").resizable()
} else {
// "data" can be 0 bytes
// do something to judge whether it is 0 or not
// in order to avoid any error in the next line
self.currentPhoto = Image(uiImage: UIImage(data: data!)!).resizable()
}
})
我该怎么做才能替换评论?
Data
有一个 isEmpty
布尔值,所以如果你坚持这个额外的安全层,那么你可以简单地阅读它:
let store = Storage.storage().reference()
let imageRef = store.child("profile_Photos").child(uid)
imageRef.getData(maxSize: 1000 * 64 * 64, completion: { (data, error) in
if let error = error {
print("Encountered error: \(error) when getting image")
self.currentPhoto = Image(systemName: "person").resizable()
} else if let data = data,
!data.isEmpty,
let img = UIImage(data: data).resizable() {
self.currentPhoto = img
}
})
您可以在条件中包含或不包含 UIImage
,这在实际意义上并不重要,因为 UIImageView
使用可选图像,但它是一个额外的安全层,这就是你显然是在追求。
我需要确保我始终可以从后端反馈一个 Image 对象,但问题是不能保证每个查询都可以使用以下函数获取图像。
let store = Storage.storage().reference()
let imageRef = store.child("profile_Photos").child(uid)
imageRef.getData(maxSize: 1000 * 64 * 64, completion: { (data, error) in
if let error = error {
print("Encountered error: \(error) when getting image")
self.currentPhoto = Image(systemName: "person").resizable()
} else {
// "data" can be 0 bytes
// do something to judge whether it is 0 or not
// in order to avoid any error in the next line
self.currentPhoto = Image(uiImage: UIImage(data: data!)!).resizable()
}
})
我该怎么做才能替换评论?
Data
有一个 isEmpty
布尔值,所以如果你坚持这个额外的安全层,那么你可以简单地阅读它:
let store = Storage.storage().reference()
let imageRef = store.child("profile_Photos").child(uid)
imageRef.getData(maxSize: 1000 * 64 * 64, completion: { (data, error) in
if let error = error {
print("Encountered error: \(error) when getting image")
self.currentPhoto = Image(systemName: "person").resizable()
} else if let data = data,
!data.isEmpty,
let img = UIImage(data: data).resizable() {
self.currentPhoto = img
}
})
您可以在条件中包含或不包含 UIImage
,这在实际意义上并不重要,因为 UIImageView
使用可选图像,但它是一个额外的安全层,这就是你显然是在追求。