0

我正在使用Firebase用户注册方法使用电子邮件和密码。在创建新用户的同时,我还存储了以后需要在应用程序配置文件页面中显示的用户名信息。Android Firebase创建并显示用户名

我该如何检索当前登录的用户名?

预先感谢您

enter image description here

private void registration(){ 

    final String email = Email.getText().toString().toString().trim(); 
    final String password = Password.getText().toString().trim(); 
    final String username = Username.getText().toString().trim(); 
    final String age = Age.getText().toString().trim(); 
    final String userID = userAuth.getCurrentUser().getUid(); 

    if (!TextUtils.isEmpty(email)&& !TextUtils.isEmpty(password)&& !TextUtils.isEmpty(username)&& !TextUtils.isEmpty(age)){ 

     showProgress.setMessage("Registration in progress..."); 
     showProgress.show(); 

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

       if(task.isSuccessful()) { 

        String user_id = userAuth.getCurrentUser().getUid(); 
        DatabaseReference current_user_db = DatbaseOfUsers.child(user_id); 
        current_user_db.child("email").setValue(email); 
        current_user_db.child("username").setValue(username); 
        current_user_db.child("Age").setValue(age); 
        current_user_db.child("uID").setValue(userID); 

        showProgress.dismiss(); 

        //After user is created main screen intent is called 
        Intent mainpage = new Intent(RegisterActivity.this, MainPageActivity.class); 
        mainpage.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
        startActivity(mainpage); 
       } 

       else if(!task.isSuccessful()){ 
        showProgress.dismiss(); 
        Toast.makeText(RegisterActivity.this,"Error While Register",Toast.LENGTH_LONG).show(); 
       } 
      } 

     }); 

    } 

    else{ 
     showProgress.dismiss(); 
     Toast.makeText(RegisterActivity.this,"Please Enter All Required Fields",Toast.LENGTH_LONG).show(); 
    } 

回答

0
private FirebaseAuth mAuth; 
    mAuth = FirebaseAuth.getInstance(); 
    final FirebaseUser Theuser = mAuth.getCurrentUser(); 
     if (Theuser !=null) 
    _UID = Theuser.getUid(); 
+0

是不是只返回一个用户ID? – MariusBrave

0

您可以发送请求Users与当前用户的UID。

FirebaseUser currentUser = FirebaseAuth.getInstance().getCurrentUser(); 
DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference(); 

mDatabase.child("Users").orderByChild(currentUser.getUid()).addListenerForSingleValueEvent(new ValueEventListener() { 
      @Override 
      public void onDataChange(DataSnapshot dataSnapshot) { 

      } 

      @Override 
      public void onCancelled(DatabaseError databaseError) { 

      } 
     }); 

onDataChange回报看重你正在寻找为dataSnapshot。然后将它投射到你的模型上,得到想要的。

相关问题