首页 文章

Android firebase创建并显示用户名

提问于
浏览
0

我正在使用带有电子邮件和密码的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();
    }

2 回答

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

    您可以使用当前用户的uid向 Users 发送请求 .

    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 的值 . 然后将它投射到您的模型中,获得您想要的任何想法 .

相关问题