Eccles
Eccles

Reputation: 412

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?

Upvotes: 17

Views: 25817

Answers (3)

Hossein Dehnokhalaji
Hossein Dehnokhalaji

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

guard let userID = Auth.auth().currentUser?.uid else { return }

Upvotes: 46

The Doctor
The Doctor

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

Victor
Victor

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

Related Questions