更新用户名/个人简介时,一切都会正确更新。图像 URL 更新收件箱 Firebase,我可以通过给定的
profileImageUrl
链接下载它,但它不会像其他东西一样在我的 Xcode 模拟器中更新。
附带问题 - 如果不注销并重新登录,信息不会更新。
struct CircularProfileImageView: View {
let user: User
let size: ProfileImageSize
var body: some View {
if let imageUrl = user.profileImageUrl {
KFImage(URL(string: imageUrl))
.resizable()
.scaledToFill()
.frame(width: size.dimension, height: size.dimension)
.clipShape(Circle())
} else {
Image(systemName: "person.circle.fill")
.resizable()
.frame(width: size.dimension, height: size.dimension)
.clipShape(Circle())
.foregroundColor(Color(.systemGray4))
}
}
}
您尝试过使用 SwiftUI 的原生 AsyncImage 吗?
var body: some View {
let imageURL = URL(string: "https://www.logolynx.com/images/logolynx/d4/d450a47a7a2d69db4603ce0ff0a4b6ff.png")
AsyncImage(url: imageURL) { phase in
if let image = phase.image {
// Displays the loaded image.
image.resizable()
} else if phase.error != nil {
// Indicates an error.
Image(systemName: "person.circle.fill")
} else {
// Acts as a placeholder.
Image(systemName: "person.circle.fill")
}
}
.frame(width: 44.0, height: 44.0)
}
另一个线索可能是将您的对象用户用作@State,因此每次更改用户的属性时,您的 SwiftUI UI 树都会重新加载。
希望有帮助。