Я создаю проект Firebase, у которого есть опция Настройки в панели навигации, в которой есть кнопка для удаления пользователя.Если пользователь нажимает кнопку, я показываю ему диалоговое окно с предупреждением, и если он нажимает «да», я хочу, чтобы он был удален из базы данных Firebase, а также как пользователь, выполнил сообщение и вернулся к экрану входа.Все работает, но после того, как я собираюсь перейти к своему классу Login.class, если я нажму кнопку «Назад», он вернет меня на вкладку настроек, как если бы пользователь все еще входил в систему (но это не так, его удалили).Есть ли способ закончить этот фрагмент, чтобы не иметь возможности вернуться туда?Это мой код.
FragmentSettings.class
public class FragmentSettings extends Fragment {
Button delete, change, rateus;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_settings, container, false);
final FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
final FirebaseDatabase mDatabase = FirebaseDatabase.getInstance();
delete = v.findViewById(R.id.settings_delete);
delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new AlertDialog.Builder(getContext(), R.style.MyDialogTheme)
.setMessage("Are you sure you want to delete your account? This will permanently delete all of your information.")
.setCancelable(false)
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
//Deleting user info from database
mDatabase.getReference().child(user.getUid()).removeValue();
//Deleting user.
user.delete();
//Signing out and back to login.
FirebaseAuth.getInstance().signOut();
Intent intent = new Intent(getContext(),Login.class);
Fragment fragment = getFragmentManager().findFragmentById(R.id.fragment_container);
if(fragment != null)
getFragmentManager().beginTransaction().remove(fragment).commit();
startActivity(intent);
}
})
.setNegativeButton("No", null)
.show();
}
});
change = v.findViewById(R.id.settings_change);
change.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
changeFragment();
}
});
rateus = v.findViewById(R.id.settings_rateus);
rateus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(v.getContext(), "App will be in App-Store soon!", Toast.LENGTH_SHORT).show();
}
});
return v;
}
private void changeFragment() {
FragmentChangePassword newChangePasswordFragment = new FragmentChangePassword();
FragmentTransaction fragmentTransaction = getActivity().getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.fragment_container, newChangePasswordFragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
}
}