Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Mapping Firebase Auth users to Firestore Documents

I'm trying to use Firebase's Firestore database to handle Users in my Android app.

Initially I want to use the id returned from the Auth package (a string), and set that as the id for the users Collection in the database. When creating a Document inside of the Collection users, I set a uid field to that auth package string.

I realize there is no way of setting that string to an indexable value so that queries like:

// get Auth package uid string db.collection("users").document(auth_uid_string); 

would work.

So the alternative, I guess, is to use Query.whereEqualTo("uid", auth_uid_string) which would give me the user in a list, because firestore doesn't assume the query is for a unique value.

I want to avoid the above solution, and devise a way to store the users of the app in firestore, and use the auth package to verify that I fetch the correct user. Is such a solution possible? Or should I try a different firebase service, or even just run a postgres server in heroku or something?

like image 731
Nevermore Avatar asked Oct 07 '17 16:10

Nevermore


People also ask

How do you link authenticated users and databases in Firebase?

After authentication, create a child with the UID given by Firebase, and set its value to your user class: //get firebase user FirebaseUser user = FirebaseAuth. getInstance(). getCurrentUser(); //get reference DatabaseReference ref = FirebaseDatabase.

Where are Firebase Auth users stored?

The user data for firebase authentication is stored in firebaseLocalStorageDb in IndexedDB .


1 Answers

I am not sure how to do this in android, but with JS I am doing the following:

firebase.firestore().collection('users').doc(currentUser.uid).set(currentUser) 

currentUser is the user object that the authentication function returns (I use signInWithCredential) It is working perfectly. I am sure you can implement a similar approach in android.

like image 181
Ziad Alame Avatar answered Sep 21 '22 06:09

Ziad Alame