Обработчик события для кнопки «Войти»
В файле MainActivity.java создаётся обработчик события для кнопки «Войти». Код аналогичен обработчику кнопки регистрации (buttonRegister), но вызывает функцию showSignInWindow(). Функция showSignInWindow() пока пуста.
// ... (существующий код) ...
// Код для кнопки "Войти" (аналогично коду для кнопки регистрации)
// ...
// Функция для отображения окна авторизации
private void showSignInWindow() {
// ... (тело функции будет реализовано позже) ...
}
Layout-файл для окна авторизации
Создаётся layout-файл sign_in_window.xml. Он основан на layout-файле для регистрации, но без полей «Телефон» и «Имя», оставляя только поля для email и пароля.
<!-- sign_in_window.xml -->
<!-- Код, аналогичный layout-файлу для регистрации, но без полей "Телефон" и "Имя" -->
Модификация функции showSignInWindow()
Функция showSignInWindow() модифицируется: текст кнопок меняется на «Отменить» и «Войти»; поля «Имя» и «Телефон», а также соответствующие проверки удаляются; registerWindow переименовывается в signInWindow; используется sign_in_window.xml.
private void showSignInWindow() {
// ... (код, аналогичный коду для отображения окна регистрации,
// с изменениями текста кнопок и удалением полей "Имя" и "Телефон") ...
}
Авторизация пользователя
Функция signInWithEmailAndPassword() авторизует пользователя по email и паролю. Она обрабатывает данные и использует addOnSuccessListener и addOnFailureListener для обработки успешной и неуспешной авторизации. При успешной авторизации пользователь перенаправляется в MapActivity; при неуспешной — выводится сообщение об ошибке с помощью Snackbar.
private void signInWithEmailAndPassword(String email, String password) {
// ... (код авторизации с помощью Firebase Authentication) ...
.addOnSuccessListener(new OnSuccessListener<AuthResult>() {
@Override
public void onSuccess(AuthResult authResult) {
Intent intent = new Intent(MainActivity.this, MapActivity.class);
startActivity(intent);
finish();
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Snackbar.make(rootView, "Ошибка авторизации: " + e.getMessage(), Snackbar.LENGTH_SHORT).show();
}
});
}
MapActivity
Создаётся пустая активити MapActivity для перенаправления пользователя после успешной авторизации.
Настройка Firebase
В консоли Firebase необходимо: включить вход с помощью email и пароля; создать базу данных в режиме защищенного доступа; установить правила для чтения и записи со значением true.
Установка необходимых компонентов
В Android Studio необходимо установить Google Play Services и Firebase Authentication.
Запуск и тестирование
После выполнения всех шагов приложение запускается и тестируется. В качестве ключа для записи используется uid пользователя (из Firebase), а не email, чтобы избежать проблем с символами в адресах электронной почты.
Реализована функциональность авторизации и регистрации в Android-приложении с использованием Firebase Authentication. Обработка успешной и неуспешной авторизации и перенаправление пользователя обеспечивают корректную работу приложения.