Пользовательская аутентификация Firebase с использованием имени пользователя и пароля - PullRequest
0 голосов
/ 20 июня 2020

Я пишу приложение Android, в котором аутентификация должна выполняться с помощью username и password (в части logIn ) и email, password и username (в части Register ). Имя пользователя и адрес электронной почты должны быть уникальными.

Я перешел по этой ссылке , где Firebase сообщает нам, как войти в систему с пользовательским токеном, сгенерированным нашим собственный бэкэнд (в моем случае Spring Boot ), но это только для входа в систему.

Как нужно обрабатывать часть регистрации?

Когда пользователь регистрируется, мне нужно проверить и сохранить данные из бэкэнда в Firebase, вернуть токен и войти в систему с этим токеном, или?

1 Ответ

2 голосов
/ 20 июня 2020

При использовании настраиваемого поставщика аутентификации для входа в Firebase регистрацию пользователей выполняет ваш собственный провайдер. Аутентификация Firebase в этом сценарии не хранит никакой информации для пользователя.

Таким образом, вам нужно будет хранить свою собственную базу данных с именами пользователей, (хешированными) паролями и другими данными, которые вы поддерживаете. Вы, конечно, можете использовать одну из баз данных Firebase (Firestore или Realtime Database) для этой цели, но Firebase Authentication не узнает об этом.

Пример поставщика имени пользователя и пароля см. В этом репозитории: https://github.com/firebase/functions-samples/tree/master/username-password-auth

В качестве другого подхода вы также можете использовать существующий провайдер электронной почты + пароль Firebase и добавить к нему требование имени пользователя. Здесь вы также должны сохранить имя пользователя во внешней базе данных, так как Firebase Authentication ничего об этом не знает.

Это более распространенный подход, и вы можете узнать гораздо больше о том, что есть у людей это можно сделать, просмотрев вопросы о сохранении уникального имени пользователя .

...