Je suis actuellement en train d'écrire une application Android. Dans mon application, les utilisateurs peuvent évaluer certains objets. Les données (les objets ainsi que les notes) doivent être stockées dans Google Firebase, en particulier Firestore. J'ai déjà lié mon application à Firebase et implémenté le com.google.android.gms.auth.api.signin
pour obtenir le GoogleSignInAccount
de l'utilisateur actuel.Firebase enregistrer des données utilisateur
Je veux enregistrer les données dans la base de données comme:
SomeObject: | objectId | name |
ObjectRating: | ratingId | objectId | userId | rating |
Ce que je ne suis pas sûr est, ce qu'il faut économiser userId. La documentation de GoogleSignInAccount.getId()
dit:
Important: Ne pas utiliser ce retour Google ID pour communiquer actuellement connecté à l'utilisateur de votre serveur principal. Au lieu de cela, envoyez un jeton d'identification (requestIdToken (String)), qui peut être validé de manière sécurisée sur le serveur; ou envoyez un code d'authentification de serveur (requestServerAuthCode (String)) qui peut être à son tour échangé contre un jeton d'identification.
Je ne devrais probablement pas l'utiliser. Mais le IdToken
recommandé est signé, donc je pense que ce sera différent à chaque fois que la méthode est appelée.
La plupart des utilisateurs créent un répertoire d'utilisateurs dans la base de données. Mais à partir de l'application, je veux obtenir la note des utilisateurs ainsi que la note moyenne globale de tous les utilisateurs pour l'objet donné. Je pense donc que la division des notes dans plusieurs tableaux d'utilisateurs complique le calcul de la note moyenne globale.
Ma question est: Comment puis-je lier l'ObjectRating à l'utilisateur, sans utiliser le getId()
dangereux tout en étant toujours en mesure de sélectionner tous les ObjectRatings par objectId pour calculer la note moyenne?
Pourquoi si compliqué? Pourquoi ne pas utiliser Firebase Auth plutôt que Google? C'est encore plus facile si vous utilisez Firebase-UI – faruk
essayer d'obtenir userId De Firebase Auth. –