# #android #firebase #authentication
Вопрос:
поэтому я создаю приложение для форума Android для своего кампуса колледжа. Я использую firebase для базы данных и аутентификации. но чего я не понимаю, так это пользовательской системы входа и регистрации с номером регистрации и паролем. Я не знаю, как это сделать. прежде чем вы предложите мне поискать его, я должен поделиться тем, что я уже просматривал в Интернете, включая переполнение стека и документацию по Android и firebase. любая помощь будет признательна. У меня есть метод signinwithcustomtoken в документации, но я не знаю, как его использовать.
Комментарии:
1. Пожалуйста, отредактируйте вопрос, чтобы ограничить его конкретной проблемой с достаточной детализацией для определения адекватного ответа.
Ответ №1:
Чтобы использовать пользовательскую систему аутентификации с Firebase, вам нужно будет подписать свои собственные токены, отправить их обратно клиенту, а затем использовать токен для входа в свое приложение.
Этот процесс будет выглядеть примерно так:
- Пользователь передает свои учетные данные (номер регистрации и пароль) в вашу пользовательскую систему аутентификации (или стороннюю систему аутентификации) и проверяет эти учетные данные. Предполагая, что учетные данные действительны, система аутентификации затем вернет подписанный JWT (веб-токен JSON) на клиентское устройство (или использует Firebase admin-sdk для создания подписанного токена).
- Затем клиент использует этот токен с
signInWithCustomToken
функцией в клиентском SDK для входа в ваше приложение Firebase таким же образом, как он использовал бы любой другой поддерживаемый метод входа (например, адрес электронной почты и пароль).
Это кажется большой дополнительной работой, когда вы просто хотите войти в систему с помощью чего-то и пароля.
Есть ли лучший способ?
То, что вы описали, вход с номером регистрации и паролем, очень похоже на вход с помощью электронной почты и пароля, которые включает Firebase. Жаль, что у нас нет электронной почты, чтобы это сработало…или у нас есть?
Вот альтернативное решение, которое может сработать для вас. Используйте createUserWithEmailAndPassword/signInWithEmailAndPassword
и попросите пользователей ввести свой регистрационный номер и пароль. При отправке выполните дополнительную обработку, чтобы добавить свою projectId
базу данных к номеру регистрации, например [Номер регистрации]@[projectId.com] (например 123456@my-project.com) и отправьте это в Firebase с помощью функции signInWithEmailAndPassword (или создайте учетную запись).
Это решение, конечно, предполагает, что вам не требуется проверка электронной почты.