Reputation: 829
When user login done successfully, it takes to home screen. When user taps on user icon button will take to user account details page. here i have already in firebase to retrieve data from database.
here is the code is used:
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)
}
})
}
I tried to migrate from firebase to firestore. While running in console output it shows document does not exists. Here is code i used
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")
}
}
Its already done firebase, I want in cloud firestore?
Any help much appreciated pls.
Upvotes: 1
Views: 4209
Reputation: 783
As the documentation says you can query data by using:
db.collection("cities").document("SF").getDocument { (document, error) in
if let document = document, document.exists {
//access data here
} else {
print("Document does not exist")
}
}
That means, in your case use:
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")
}
}
Let me know how it works out, and I can update my answer with whatever issue might come up.
Kind regards Chris
Upvotes: 4