Re-Authenticate Firebase user
suggest changepublic class ReAuthenticateDialogFragment extends DialogFragment { @BindView(R.id.et_dialog_reauthenticate_email) EditText mEditTextEmail; @BindView(R.id.et_dialog_reauthenticate_password) EditText mEditTextPassword; private OnReauthenticateSuccessListener mOnReauthenticateSuccessListener; @OnClick(R.id.btn_dialog_reauthenticate) void onReauthenticateClick() { FormValidationUtils.clearErrors(mEditTextEmail, mEditTextPassword); if (FormValidationUtils.isBlank(mEditTextEmail)) { FormValidationUtils.setError(null, mEditTextEmail, "Please enter email"); return; } if (!FormValidationUtils.isEmailValid(mEditTextEmail)) { FormValidationUtils.setError(null, mEditTextEmail, "Please enter valid email"); return; } if (TextUtils.isEmpty(mEditTextPassword.getText())) { FormValidationUtils.setError(null, mEditTextPassword, "Please enter password"); return; } reauthenticateUser(mEditTextEmail.getText().toString(), mEditTextPassword.getText().toString()); } private void reauthenticateUser(String email, String password) { DialogUtils.showProgressDialog(getActivity(), "Re-Authenticating", "Please wait...", false); FirebaseUser firebaseUser = FirebaseAuth.getInstance().getCurrentUser(); AuthCredential authCredential = EmailAuthProvider.getCredential(email, password); firebaseUser.reauthenticate(authCredential) .addOnCompleteListener(new OnCompleteListener<Void>() { @Override public void onComplete(@NonNull Task<Void> task) { DialogUtils.dismissProgressDialog(); if (task.isSuccessful()) { mOnReauthenticateSuccessListener.onReauthenticateSuccess(); dismiss(); } else { ((BaseAppCompatActivity) getActivity()).showToast(task.getException().getMessage()); } } }); } @Override public void onAttach(Context context) { super.onAttach(context); mOnReauthenticateSuccessListener = (OnReauthenticateSuccessListener) context; } @OnClick(R.id.btn_dialog_reauthenticate_cancel) void onCancelClick() { dismiss(); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.dialog_reauthenticate, container); ButterKnife.bind(this, view); return view; } @Override public void onResume() { super.onResume(); Window window = getDialog().getWindow(); window.setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.WRAP_CONTENT); } interface OnReauthenticateSuccessListener { void onReauthenticateSuccess(); } }
Found a mistake? Have a question or improvement idea?
Let me know.
Table Of Contents