Как создать метод входа, используя базу данных firestore и firebase аутентификацию - PullRequest
0 голосов
/ 17 февраля 2020

Привет, я создаю приложение со страницей регистрации, где пользователь вводит электронную почту, пароль, общий секрет и затем страницу входа. Используя Firestore, я храню секретную информацию пользователей, которая работает нормально. Я также использую метод аутентификации firebase для электронной почты и пароля. Проблема, с которой я столкнулся, на странице регистрации с использованием метода signInWithEmailAndPassword для аутентификации в firebase, я могу вызвать только электронную почту и пароль. Как бы я go проверил общий секрет пользователя, а также электронную почту и пароль?

спасибо за любую помощь

Ответы [ 2 ]

1 голос
/ 17 февраля 2020

Самый простой способ, которым я знаю, как это сделать, это добавить дополнительные операторы. Я предполагаю, что общий секрет сохраняется в базе данных в реальном времени. В этом случае вы захотите вызвать эти данные и сравнить их с вводом пользователя:

FirebaseAuth auth;
DatabaseReference secretRef; //before onCreate
private String currentUserId;

Теперь для вашего метода входа

final EditText sharedSecret = findViewById(R.id.sharedSecret); //find user input
auth = FirebaseAuth.getInstance();
currentUserId = mAuth.getCurrentUser().getUid();
secretRef = FirebaseDatabase.getInstance().getReference().child("User").child(currentUserId).child("sharedSecret");
final String checkedSecret = secretRef.toString();

Затем вы бы сравнили его с помощью используя код как:

if(checkedSecret != sharedSecret)
{
//user is not login
}else{
//continue with login
}

Удачи

1 голос
/ 17 февраля 2020

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...