How to get UserName from FirebaseUser using authentication Uid in android?

孤街醉人 提交于 2019-12-07 15:53:37

问题


I registered a user by using createUserWithEmailAndPassword() and login using signInWithEmailAndPassword() methods. Now when I login a user I need to get the username, mobile, that are stored in the user node. I could get the UId for each user, by using this how it possible to get the mentioned information in android?


回答1:


all you have to do is use UserProfileChangeRequest

 mAuth.createUserWithEmailAndPassword(email, password).addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
            @Override
            public void onComplete(@NonNull Task<AuthResult> task) {
                if(task.isSuccessful()){
                    // Sign in success
                    FirebaseUser user = mAuth.getCurrentUser();

                    UserProfileChangeRequest profileUpdates = new UserProfileChangeRequest.Builder()
                        .setDisplayName(mName).build();

                    user.updateProfile(profileUpdates).addOnCompleteListener(new OnCompleteListener<Void>() {
        @Override
        public void onComplete(@NonNull Task<Void> task) {
            if (task.isSuccessful()) {
                Log.d(TAG, "User profile updated.");
             }
         }
     });


                }
    });

Then, to retrieve it, use this wherever required,

FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
if (user != null) {
    // Name, email address etc
    String name = user.getDisplayName();
    String email = user.getEmail();
}

or you can create your own custom node.!

 String currentuser = FirebaseAuth.getInstance().getUid();

//save user node after successful signup.
      mFirebaseInstance.getReference("user").child(scurrentuser ).setValue(parameters);



    databaseReference = FirebaseDatabase.getInstance().getReference().child("user").child(currentuser );
    databaseReference.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {


      for(DataSnapshot userSnapShot: dataSnapshot.getChildren()){
            User user = userSnapShot.getValue(User.class);
        }
        }


来源:https://stackoverflow.com/questions/49767695/how-to-get-username-from-firebaseuser-using-authentication-uid-in-android

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!