【发布时间】:2020-08-29 10:30:28
【问题描述】:
我的应用已成功设置 Firebase 电话身份验证。
在我家,当用户登录时,我检索他的特定 uid 以创建一个以他的 uid 命名的 firestore 文档,以添加有关用户的更多信息。 我为每个用户添加了一个“积分”字段。
我正在尝试获取特定的“点”字段值。
有人可以帮我解释一下解决方案吗?我已经知道我们不能通过 firestore 获取请求仅获取字段值,但找不到存储“点”值以将其显示给我的用户的解决方案。
非常感谢。
如果需要,这是我的代码:
import SwiftUI
import Firebase
func getUID() -> String {
let user = Auth.auth().currentUser
if let user = user {
return user.uid
}
return "Can't fetch user data."
}
struct HomeView: View {
let uid = getUID()
let db = Firestore.firestore()
var body: some View {
VStack {
Text("User id = \(uid)")
.font(.headline)
.onAppear {
self.db.collection("users").document(self.uid).setData([
"points" : 2
])
}
Button(action: {
let docRef = self.db.collection("users").document(self.uid)
docRef.getDocument { (document, error) in
if let document = document, document.exists {
let dataDescription = document.data()
print(dataDescription)
} else {
print("Document \(document) does not exist")
}
}
}) {
Text("See my points")
}
Button(action: {
try! Auth.auth().signOut()
UserDefaults.standard.set(false, forKey: "status")
NotificationCenter.default.post(name: NSNotification.Name(rawValue: "statusChange"), object: nil)
}) {
Text("Logout")
}
}
}
}
struct HomeView_Previews: PreviewProvider {
static var previews: some View {
HomeView()
}
}
【问题讨论】:
标签: swift firebase google-cloud-firestore swiftui