2017-12-31 201 views
2

내 firebase 어플리케이션에서 일하고 있으며 현재 의도 한대로 작동하지 않아 로직에 대한 도움이 필요합니다.비밀번호가 맞을 때만 Firebase가 "DisplayName"으로 바뀝니다.

로그인 한 사용자가 올바른 암호를 입력하면 이름을 변경할 수 있도록 설정하려합니다.

내 현재 코드를 사용하면 입력 한 암호가 정확하다는 토스트 메시지에도 불구하고 이름이 변경됩니다.

/** 
    * Update Name Only 
    */ 
    private void updateDisplayNameOnly(){ 

     showProgress(); 

     AuthCredential credential = EmailAuthProvider 
       .getCredential(FirebaseAuth.getInstance().getCurrentUser().getEmail(), mConfirm.getText().toString()); 

     FirebaseAuth.getInstance().getCurrentUser().reauthenticate(credential) 
       .addOnCompleteListener(new OnCompleteListener<Void>() 
       { 
        @Override 
        public void onComplete(@NonNull Task<Void> task) 
        { 
         FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser(); 

         UserProfileChangeRequest profileUpdate = new UserProfileChangeRequest.Builder() 
           .setDisplayName(mName.getText().toString()) 
           //.setPhotoUri(Uri.parse("https://avatarfiles.alphacoders.com/862/86285.jpg")) 
           .build(); 

         user.updateProfile(profileUpdate); 

         if (task.isSuccessful()) 
         { 
          Log.d(TAG, "onComplete: User Profile updated"); 
          hideProgress(); 

          Toast.makeText(getActivity(), "NAME IS UPDATED XD XD XD", Toast.LENGTH_SHORT).show(); 

          // RESTART APP FOR CHANGES 
         } 

        } 
       }) 
       .addOnFailureListener(new OnFailureListener() { 
        @Override 
        public void onFailure(@NonNull Exception e) { 
         hideProgress(); 
         Toast.makeText(getActivity(), "NAME WAS NOT UPDATED 2", Toast.LENGTH_SHORT).show(); 
        } 
       }); 

    } 

은 당신의 방법에 당신이 Task<AuthResult>Task<Void>를 설정하는 것이 될 수있다이

답변

0

당신이있는 거 문제를 도와주세요. 코드를 다음과 같이 수정하려고 시도 :

@Override 
    public void onComplete(@NonNull Task<AuthResult> task) { 
     if(task.isSuccessful()) 
     { 
      FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser(); 

      UserProfileChangeRequest profileUpdate = new UserProfileChangeRequest.Builder() 
        .setDisplayName(mName.getText().toString()) 
        //.setPhotoUri(Uri.parse("https://avatarfiles.alphacoders.com/862/86285.jpg")) 
        .build(); 

      user.updateProfile(profileUpdate); 

      Log.d(TAG, "onComplete: User Profile updated"); 
      Toast.makeText(getActivity(), "NAME IS UPDATED XD XD XD", Toast.LENGTH_SHORT).show(); 

     } 
     } else { 
      //Display what happens if you couldn't update the name 
     } 
     hideProgressDialog(); 
    });