La méthode Firebase createUser()
prend un champ e-mail et mot de passe, mais que se passe-t-il si je souhaite également autoriser l'utilisateur à utiliser un nom d'utilisateur personnalisé similaire à Snapchat, Instagram, StackOverflow, etc. Existe-t-il un moyen de modifier la méthode existante pour accepter ce champ ou dois-je faire pousser et gérer cette information manuellement et si oui, comment?Comment inclure un nom d'utilisateur lors du stockage d'un e-mail et d'un mot de passe à l'aide de Firebase (BaaS) dans une application Android?
Ceci est ma première tentative de stockage de l'information d'utilisateur souhaité:
Firebase ref = new Firebase(firebaseURL);
ref.createUser(email, password, new Firebase.ValueResultHandler<Map<String, Object>>() {
@Override
public void onSuccess(Map<String, Object> result) {
System.out.println("Successfully created user account with uid: " + result.get("uid"));
//Sign user in
Firebase ref = new Firebase(firebaseURL);
ref.authWithPassword(email, password, new Firebase.AuthResultHandler() {
@Override
public void onAuthenticated(AuthData authData) {
System.out.println("User ID: " + authData.getUid() + ", Provider: " + authData.getProvider());
//Save user info
Firebase userRef = new Firebase(firebaseURL + "Users/");
User user = new User(username, authData.getUid());
userRef.setValue(user);
Est-ce une bonne pratique? Je pensais stocker l'UID avec le nom d'utilisateur peut m'aider dans le traitement des changements, etc. Aussi, devrais-je implémenter la méthode updateChildren()
ou push()
afin que les entrées ne soient pas écrasées s'il s'agit d'une application de médias sociaux?
Ceci est ma deuxième tentative:
@Override
public void onAuthenticated(AuthData authData) {
System.out.println("User ID: " + authData.getUid() + ", Provider: " + authData.getProvider());
//Save user info and username
Firebase ref = new Firebase(firebaseURL);
Map<String, String> map = new HashMap<String, String>();
map.put("email", email);
map.put("username", username);
map.put("provider", authData.getProvider());
ref.child("users").child(authData.getUid()).setValue(map);
Désolé pour la réponse tardive. Cela semble être pour Javascript. J'ai besoin de Java pour Android. Il semble être configuré légèrement différemment pour chacun et j'ai de la difficulté à traduire. – YoungCoconutCode
Bien sûr. ** Modifier ** votre question pour inclure le code de votre meilleur effort et je vais jeter un coup d'oeil. –
Fera! J'apprécie vraiment votre volonté d'aider! Question rapide d'abord: le parent '' 'users''' et l'objet' '' authData.uid''' ... avez-vous écrit manuellement ceux-ci dans la base de données ou sont-ils créés automatiquement lors de l'utilisation de createUser? Ils n'apparaissent pas dans mon tableau de bord Firebase et j'ai déjà authentifié quelques pseudo-utilisateurs.Ces objets sont-ils cachés ou inaccessibles à des fins de confidentialité? – YoungCoconutCode