如何在 firestore swift 中获取当前用户文档
how to get current user document in firestore swift
用户登录成功后,进入主界面。当用户点击用户图标按钮时,将进入用户帐户详细信息页面。在这里,我已经在 firebase 中从数据库中检索数据。
这里是使用的代码:
func observeCurrentUser(completion: @escaping (User) -> Void) {
guard let currentUser = Auth.auth().currentUser else {
return
}
REF_USERS.child(currentUser.uid).observeSingleEvent(of: .value, with: {
snapshot in
if let dict = snapshot.value as? [String: Any] {
let user = User.transformUser(dict: dict, key: snapshot.key)
print("user::::::\(user)")
completion(user)
}
})
}
我尝试从 firebase 迁移到 firestore。虽然 运行 在控制台输出中显示文档不存在。这是我使用的代码
func observeCurrentUser(completion: @escaping (User) -> Void) {
guard let currentUser = Auth.auth().currentUser else {
return
}
if let userId = Auth.auth().currentUser?.uid {
db.collection("users").document(currentUser.uid)
.addSnapshotListener { (snapshot, error ) in
if let document = snapshot {
let user = User.transformUser(dict: document.data()!, key: document.documentID)
completion(user)
} else {
print("Document does not exist")
}
}
它已经完成了 firebase,我想在云 firestore 中?
非常感谢任何帮助。
正如documentation所说,您可以使用以下方式查询数据:
db.collection("cities").document("SF").getDocument { (document, error) in
if let document = document, document.exists {
//access data here
} else {
print("Document does not exist")
}
}
这意味着,在您的情况下使用:
db.collection("users").document(currentUser.uid)
.getDocument { (snapshot, error ) in
if let document = snapshot {
let user = User.transformUser(dict: document.data()!, key: document.documentID)
completion(user)
} else {
print("Document does not exist")
}
}
让我知道结果如何,我可以根据可能出现的任何问题更新我的答案。
亲切的问候克里斯
用户登录成功后,进入主界面。当用户点击用户图标按钮时,将进入用户帐户详细信息页面。在这里,我已经在 firebase 中从数据库中检索数据。
这里是使用的代码:
func observeCurrentUser(completion: @escaping (User) -> Void) {
guard let currentUser = Auth.auth().currentUser else {
return
}
REF_USERS.child(currentUser.uid).observeSingleEvent(of: .value, with: {
snapshot in
if let dict = snapshot.value as? [String: Any] {
let user = User.transformUser(dict: dict, key: snapshot.key)
print("user::::::\(user)")
completion(user)
}
})
}
我尝试从 firebase 迁移到 firestore。虽然 运行 在控制台输出中显示文档不存在。这是我使用的代码
func observeCurrentUser(completion: @escaping (User) -> Void) {
guard let currentUser = Auth.auth().currentUser else {
return
}
if let userId = Auth.auth().currentUser?.uid {
db.collection("users").document(currentUser.uid)
.addSnapshotListener { (snapshot, error ) in
if let document = snapshot {
let user = User.transformUser(dict: document.data()!, key: document.documentID)
completion(user)
} else {
print("Document does not exist")
}
}
它已经完成了 firebase,我想在云 firestore 中?
非常感谢任何帮助。
正如documentation所说,您可以使用以下方式查询数据:
db.collection("cities").document("SF").getDocument { (document, error) in
if let document = document, document.exists {
//access data here
} else {
print("Document does not exist")
}
}
这意味着,在您的情况下使用:
db.collection("users").document(currentUser.uid)
.getDocument { (snapshot, error ) in
if let document = snapshot {
let user = User.transformUser(dict: document.data()!, key: document.documentID)
completion(user)
} else {
print("Document does not exist")
}
}
让我知道结果如何,我可以根据可能出现的任何问题更新我的答案。
亲切的问候克里斯