web-dev-qa-db-fra.com

Mappage des utilisateurs Firebase Auth aux documents Firestore

J'essaie d'utiliser la base de données Firestore de Firebase pour gérer les Users dans mon application Android Android.

Au départ, je veux utiliser le id renvoyé par le package Auth (une chaîne), et le définir comme id pour le usersCollection dans la base de données. Lors de la création d'un Document à l'intérieur du Collectionusers, j'ai défini un champ uid à cette chaîne de package d'authentification.

Je me rends compte qu'il n'y a aucun moyen de définir cette chaîne sur une valeur indexable afin que les requêtes comme:

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

travaillerait.

Donc, je suppose que l'alternative est d'utiliser Query.whereEqualTo("uid", auth_uid_string) qui me donnerait l'utilisateur dans une liste, car firestore ne suppose pas que la requête est pour une valeur unique.

Je veux éviter la solution ci-dessus et trouver un moyen de stocker le users de l'application dans firestore et utiliser le package auth pour vérifier que je récupère le bon utilisateur . Une telle solution est-elle possible? Ou devrais-je essayer un service Firebase différent , ou même simplement exécuter un serveur PostgreSQL dans Heroku ou quelque chose?

20
Nevermore

Je ne sais pas comment faire cela dans Android, mais avec JS, je fais ce qui suit:

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

currentUser est l'objet utilisateur renvoyé par la fonction d'authentification (j'utilise signInWithCredential) Il fonctionne parfaitement. Je suis sûr que vous pouvez implémenter une approche similaire dans Android.

26
Ziad Alame