1

Je suis en train de mettre en œuvre l'enregistrement d'un nom d'utilisateur dans Firebase car il ne me donne que des méthodes qui sont comme le createUserWithEmailAndPassword(), mais vous ne pouvez pas créer un nom d'utilisateur et je ne sais pas comment faire ...Comment puis-je enregistrer un nom d'utilisateur dans Firebase?

ci-dessous est mon code de registre, mais je veux également entrer un nom d'utilisateur qui peut l'utiliser, lorsque l'utilisateur publie quelque chose, etc, comme la méthode getEmail(), également en mesure d'avoir un getUsername().

auth.createUserWithEmailAndPassword(email, password).addOnCompleteListener(RegisterActivity.this, new OnCompleteListener<AuthResult>() { 
      @Override 
      public void onComplete(@NonNull Task<AuthResult> task) { 

       progressBar.setVisibility(View.GONE); 

       if(!task.isSuccessful()){ 
        Toast.makeText(RegisterActivity.this, "Something went wrong :(" , Toast.LENGTH_LONG).show(); 
       }else{ 
        startActivity(new Intent(RegisterActivity.this, UsernameARegistrarActivity.class)); 
        finish(); 
       } 
      } 
     }); 
    } 

Ma classe de modèle:

public class User implements Serializable{ 
    private String user; 
    private String email; 
    private String Uid; 
    private String username; 

    public User() { 
    } 

    public User(String user) { 
     this.user = user; 
    } 

    public User(String user, String email, String uid, String username) { 
     this.user = user; 
     this.email = email; 
     Uid = uid; 
     this.username = username; 
    } 

    public String getUsername() { 
     return username; 
    } 

    public void setUsername(String username) { 
     this.username = username; 
    } 

    public String getUser() { 
     return user; 
    } 

    public void setUser(String user) { 
     this.user = user; 
    } 

    public String getEmail() { 
     return email; 
    } 

    public void setEmail(String email) { 
     this.email = email; 
    } 


    public String getUid() { 
     return Uid; 
    } 

    public void setUid(String uid) { 
     Uid = uid; 
    } 
} 

Répondre

1

Si vous utilisez auth email/mot de passe avec un nom d'utilisateur à la place, vous pouvez simplement indexer les utilisateurs à des adresses dans un chemin de septembre Ensuite, lorsqu'un utilisateur authentifie, consulter leur e-mail dans l'index:

/user_to_email_index/user_name $/ https://www.firebase.com/docs/web/guide/login/custom.html

0

Vous ne pouvez pas stocker des données personnalisées dans un utilisateur firebase en soi, selon la documentation firebase

Vous ne pouvez pas ajouter d'autres propriétés à l'objet utilisateur Firebase directement; à la place, vous pouvez stocker les propriétés supplémentaires dans votre base de données Firebase Realtime.

Étant donné que chaque utilisateur enregistré dispose d'un identifiant unique que vous pouvez accéder à

FirebaseAuth.getInstance().getCurrentUser().getUid() 

une fois que l'utilisateur se connecte, vous pouvez créer une table dans la base de données en temps réel qui stocke les données de chaque utilisateur en utilisant votre utilisateur classe. Ensuite, vous pouvez interroger la base de données pour l'utilisateur connecté en utilisant l'extrait ci-dessus pour l'Uid.

Plus d'infos ici: https://firebase.google.com/docs/auth/users

+0

je l'ai fait, mais il n'y a aucun moyen de récupérer les valeurs, pour l'utilisateur spécifique, je ne sais pas ce code à utiliser i essayé pour le faire http://stackoverflow.com/questions/43444174/how-can-i-get-some-value-from-my-firebase – TheQuestionerXxx

1

Essayez ce,

DatabaseReference database = FirebaseDatabase.getInstance().getReference(); 
    User user = new User(firebaseUser.getUid(), 
      firebaseUser.getEmail(), 
      , firstName, photoURL); // add value as bean object 

    database.child(ARG_USERS) 
      .child(firebaseUser.getUid()) 
      .setValue(user) 
      .addOnCompleteListener(new OnCompleteListener<Void>() { 
       @Override 
       public void onComplete(@NonNull Task<Void> task) { 
        if (task.isSuccessful()) { 
       // user data updated in firebase 
         } 


      });