Похоже, что когда пользователь даже не коснулся текстовых полей имени пользователя или пароля, строки email
и password
равны нулю. Но если пользователь что-то набирает (следовательно, изменяет строки email
и password
), а затем стирает то, что он набрал, строки не будут null
, они будут равны пустой строке ""
, то есть отличается от null
. Следовательно, ваш поток управления будет прыгать прямо к последнему else
, который у вас там есть, а это не то, что вам нужно.
Рассмотрите возможность добавления проверок, когда email.isEmpty
или когда password.isEmpty
для захвата этих событий, или Инициализация ваших email
и password
строк до ""
. Таким образом вы убедитесь, что они не будут null
, и вам просто нужно заменить email == null
на email.isEmpty
и password == null
на password.isEmpty
в вашем коде, и все должно работать нормально.