То, что вы делаете неправильно, это то, что вы проверяете dataSnapshot.getValue () == null каждый раз
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (dataSnapshot.getValue() == null) {
....
}else{
Toast.makeText(Register.this, "User already Registered",
Toast.LENGTH_SHORT).show();
}
}
В этом случае, что происходит, когда вы впервые пришли, нет пользовательских данныхdataSnapshot.getValue () был нулевым, а затем вы создали пользователя с помощью вашего метода createUser (), и сразу после создания вашего пользователя firebase запускает обратный вызов в вашем методе onDataChange (DataSnapshot dataSnapshot), и на этот раз dataSnapshot.getValue () получает вашего пользователяданные и состояние, которое вы проверяете, переходят к управлению другой частью, и появляется тост.
OnDataChanged вызывается каждый раз, когда вы изменяете значение в своей базе данных на этой ссылке.
Вам необходимо изменить условие if и else, чтобы проверить, зарегистрирован пользователь или нет, если зарегистрировано, показывают литост еще зарегистрировать их.