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>
를 설정하는 것이 될 수있다이