Аутентификация телефона Firebase: как только телефон введен, проверьте, есть ли пользователь с этим телефоном в users

Привет всем, я пытаюсь выполнить аутентификацию телефона для входа в систему и использовать регистрацию с адресом электронной почты и паролем, когда пользователь зарегистрирован, он сохраняет адрес электронной почты и пароль в пользователях firebase по умолчанию, а также добавляет новый объект firebase с дополнительной информацией о пользователе Телефон, информация об автомобиле , Имя

Аутентификация телефона Firebase: как только телефон введен, проверьте, есть ли пользователь с этим телефоном в users

теперь для входа в систему пользователь вводит свой телефон, но (но) я не хочу, чтобы какой-либо пользователь, который не был зарегистрирован до того, чтобы войти и пройти аутентификацию, я хочу проверить, существует ли введенный номер телефона пользователя в базе данных

Я не могу использовать UID, потому что пользователь еще не вошел в систему, что делать?

У тебя есть код? Пожалуйста, добавьте это к своему вопросу

jrswgtr 01.08.2018 10:02
0
1
424
1

Ответы 1

Усама, во время регистрации вам необходимо аутентифицировать пользователя по телефону (+ xxxxxxxxxx).

Следующим незамедлительным шагом вам будет привязать этот телефон к электронной почте и паролю.

Допустим, пользователь вышел из системы. И он хочет снова войти в систему.

1) например он находится в представлении номера телефона, и он вводит свой номер телефона (+ xxxxxxxxxx), после того, как он правильно вводит код sms, вам необходимо проверить, связан ли этот телефон с любыми другими учетными данными пароля электронной почты

В FIRAuth auth signInWithCredential с использованием телефона вы можете проверить FIRAdditionalUserInfo на предмет «телефон» и «пароль», чтобы узнать, связан ли он уже с паролем, и предложить ему войти в систему.

2) например он выбирает вход (он должен запрашивать только его адрес электронной почты и пароль)

Обновления:

private void signInWithPhoneAuthCredential(PhoneAuthCredential credential) {
mAuth.signInWithCredential(credential)
        .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
            @Override
            public void onComplete(@NonNull Task<AuthResult> task) {
                if (task.isSuccessful()) {
                    // Sign in success, update UI with the signed-in user's information
                    Log.d(TAG, "signInWithCredential:success");

                    FirebaseUser user = task.getResult().getUser();
                    // ...get the user.providerData and FIRAdditionalUserInfo providerID "password"

                } else {
                    // Sign in failed, display a message and update the UI
                    Log.w(TAG, "signInWithCredential:failure", task.getException());
                    if (task.getException() instanceof FirebaseAuthInvalidCredentialsException) {
                        // The verification code entered was invalid
                    }
                }
            }
        });
}

Спасибо loooot, но не могли бы вы дать мне пример того, как реализовать то, что вы сказали, я был бы признателен

Osama 01.08.2018 10:37

@Osama обновил код и некоторые подсказки. Предлагаем вам разместить точку останова в FirebaseUser user = task.getResult (). GetUser (); и проверьте значение внутри этих ключевых слов "// ... получить user.providerData и FIRAdditionalUserInfo providerID" пароль ""

user1872384 01.08.2018 11:08

Другие вопросы по теме