Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Firebase: How to get User.uid?

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?

like image 957
Eccles Avatar asked Jun 06 '17 13:06

Eccles


3 Answers

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 guards:

guard let userID = Auth.auth().currentUser?.uid else { return }
like image 119
Hossein Dehnokhalaji Avatar answered Oct 22 '22 08:10

Hossein Dehnokhalaji


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 }
like image 36
Victor Avatar answered Oct 22 '22 09:10

Victor


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 }
like image 22
The Doctor Avatar answered Oct 22 '22 09:10

The Doctor