J'essaie de trouver un moyen simple et simple d'obtenir le uid
résultant d'un appel à createUser()
lorsque vous travaillez avec le SDK Java. Ceci est facile à faire lorsque vous travaillez avec le SDK Javascript (par exemple, this question/answer). J'ai également vu la question soulevée sur Stackoverflow dans le context of the Firebase iOS API où apparemment ce n'est pas si facile. Mon problème est de savoir comment le faire en utilisant le Firebase Java SDK. Plus précisément, mon cas d'utilisation est identique à celui de la question iOS, à savoir autoriser un utilisateur Admin à créer des comptes utilisateur (authentification par e-mail/mot de passe) et stocker d'autres informations sur l'utilisateur créé dans Firebase. Connaître et utiliser l'uid comme une clé est essentiel car c'est la base des règles de sécurité.Dans Firebase SDK pour Java createUser() ne renvoie pas uid
J'ai vu quelques solutions proposées, qui impliquaient toutes deux une procédure à effectuer après la création du nouveau compte d'utilisateur. Ce sont
- query the Firebase using the email address
- Login as the new user and use the authData to get the uid
De toute façon j'ai une solution alambiquée avec plusieurs callbacks async pour faire face à un problème qui est trivial lorsque vous utilisez l'API Javascript.
J'ai donc trois questions précises:
- est-il actuellement une meilleure approche que les deux répertoriées ci-dessus?
- Si j'utilise la 2ème approche et que je me connecte en tant qu'utilisateur nouvellement créé, cela ne remplace-t-il pas le jeton Admin (c'est-à-dire, déconnecte l'administrateur qui a créé l'utilisateur)?
- Y at-il une attente que les SDK Java & Android seront mis à jour de sitôt afin que l'API
createUser()
est la même que la version Javascript?
MISE À JOUR: Creuser plus profond et d'expérimenter un peu, j'ai trouvé les réponses à mes questions. Il s'avère que la documentation API fournie par Firebase est obsolète et/ou incohérente.
Re Q1: Selon le Javadoc for createUser() le seul gestionnaire de rappel disponible est un Firebase.ResultHandler
. Cependant selon le Changelog, le API Reference document, et la documentation sur Creating User Accounts, un Firebase.ValueResultHandler
peuvent également être utilisés. Ceci fournit un accès direct à l'UID
Re Q2: La réponse est oui. L'authentification du nouveau compte d'utilisateur entraîne le remplacement du jeton auth
.
Re Q3: La vraie question devrait être "Quand les gens de Firebase vont mettre à jour le Javadoc?" Ou peut-être une meilleure question est "Pourquoi les nouvelles versions du SDK sont-elles publiées sans documentation mise à jour et précise?"