Avec Firebase, je peux m'inscrire et me connecter aux utilisateurs à l'aide des adresses e-mail. Cependant, que se passe-t-il si je veux que l'application soit basée sur le nom d'utilisateur. Par exemple, vous vous connecteriez avec "Bobzilla" au lieu de "[email protected]"?
Est-ce possible avec Firebase?
Il n'y a pas de fournisseur de nom d'utilisateur + mot de passe par défaut intégré à l'authentification Firebase. Mais vous pouvez créer votre propre fournisseur d'identité personnalisé en utilisant instructions dans la documentation Firebase . Cela nécessite du code qui s'exécute dans un environnement approuvé, pour lequel vous pouvez utiliser votre propre serveur ou Cloud Functions for Firebase . Il y a même maintenant un exemple de ceci dans le repo des fonctions-échantillons .
Alternativement: vous pouvez utiliser le fournisseur de messagerie + mot de passe intégré et simplement ajouter n'importe quel domaine derrière le nom d'utilisateur. Donc, une fois que vous avez déterminé le nom d'utilisateur, enregistrez votre utilisateur avec <username>@vikzillasapp.com
.
Notez que cela empêchera l'utilisateur de réinitialiser son mot de passe s'il l'oublie, car Firebase utilise l'adresse e-mail pour envoyer l'e-mail de réinitialisation du mot de passe.
Au lieu d'utiliser une méthode dans laquelle vous attribuez une adresse e-mail à l'utilisateur, il peut être préférable de rechercher une adresse e-mail dans votre base de données.
Un exemple serait:
Vous pouvez utiliser authentification personnalisée Firebase . L'authentification personnalisée est une méthode permettant à l'utilisateur de se connecter à l'application à l'aide d'un jeton personnalisé.
Mais, vous avez besoin d'un code backend, pour créer un jeton personnalisé lorsque l'utilisateur envoie un nom d'utilisateur et un mot de passe à ce backend.
Heureusement, il existe maintenant une fonction cloud Firebase, avec événement http, qui peut résoudre votre problème facilement. L'étape est:
L'utilisateur envoie le nom d'utilisateur et le mot de passe à l'URL de la fonction cloud via les paramètres de requête (GET) ou le corps de la requête (POST)
Cloud funtion vérifiera si le nom d'utilisateur et le mot de passe sont valides (ex: de la base de données en temps réel)
Si le nom d'utilisateur et le mot de passe sont valides, la fonction cloud créera un jeton personnalisé à l'aide de userId (vous devez enregistrer l'ID utilisateur). Et puis l'envoyer au corps de réponse
Le client peut alors se connecter en utilisant ce jeton personnalisé