J'essaie d'utiliser la base de données Firestore
de Firebase pour gérer les User
s 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 users
Collection
dans la base de données. Lors de la création d'un Document
à l'intérieur du Collection
users
, 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?
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.