【发布时间】:2022-10-23 23:05:24
【问题描述】:
我试图通过.map 获取用户的年龄和用户名,但它显示最后一个用户登录信息,而不是当前用户。
我很确定问题出在snapshot.data().map,但我不知道如何将其更改为当前用户。
func getData() {
let db = FirebaseManager.shared.firestore
guard let uid = FirebaseManager.shared.auth.currentUser?.uid
else {
self.errorMessage = "Could not find firebase uid"
return
}
db.collection("user").document(uid).getDocument { snapshot, error in
if error == nil {
//No errors
if let snapshot = snapshot {
DispatchQueue.main.async {
self.userInfo = snapshot.data().map { d in
return UserInfo(age: d["age"] as? Int ?? 18, username: d["username"] as? String ?? "")
}
}
}
} else {
self.errorMessage = "Uh Oh... Error"
}
}
}
在视图中,我将其显示为:
Text("\(userMng.userInfo?.username ?? "NoUsername"), \(userMng.userInfo?.age ?? 18)")
【问题讨论】:
标签: ios xcode firebase google-cloud-firestore swiftui