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>
を設定することが考えられます。この