Reputation: 412
I'm using Firebaseauth to manage users and data for my iOS app. The users can log in, and their userinfo is stored correct in the database. But when I try to get the users to write to the database in a different viewController, using this string:
self.ref.child("users").child(user.uid).setValue(["username": username])
The thrown error is
Type user has no member .uid
That makes sense I guess, since I haven't created the variable. But I can't figure out how to declare it?
Upvotes: 17
Views: 25817
Reputation: 867
This is how you get the user's uid:
let userID = Auth.auth().currentUser!.uid
UPDATE: Since this answer is getting upvotes, make sure you prevent your app from crashing by using guard
s:
guard let userID = Auth.auth().currentUser?.uid else { return }
Upvotes: 46
Reputation: 504
FIRAuth has actually been renamed to Auth. So, as per the latest changes, it will be
let userID = Auth.auth().currentUser!.uid
Edit.
As pointed out in comments, A force unwrap may crash the app.
guard let userID = Auth.auth().currentUser?.uid else { return }
Upvotes: 0
Reputation: 359
You might want to use a guard, as a force unwrap might break your app if a user isn’t signed in.
guard let userID = Auth.auth().currentUser?.uid else { return }
Upvotes: 9