За 20 с лишним лет, которые я программировал в Java, я никогда не сталкивался с такими загадочными вещами, как эта. В следующем коде:
// Initialize Firebase Auth
mAuth = FirebaseAuth.getInstance();
currentUser = mAuth.getCurrentUser();
if (currentUser == null) {
LoginManager.getInstance().logOut();
LoginFragment loginFragment = new LoginFragment();
FragmentManager manager = getActivity().getSupportFragmentManager();
manager.beginTransaction().replace(R.id.fragment_container, loginFragment, loginFragment.getTag()).commit();
return view;
}
firebase_userID = currentUser.getUid();
Я устанавливаю точку останова в операторе if (), а когда я туда попадаю, я устанавливаю переменную currentUser в null. Когда я продолжаю выполнение, оператор LoginManager.getInstance (). LogOut () должен выполняться, верно? Вместо этого код падает до строки после if (). С какой стати это должно происходить ??
Чтобы доказать, что я не сплю, вот соответствующие скриншоты: и
И да, я перестроил и перезагрузил приложение после добавления оператора if (). Я даже перезапустил Android Studio.