Как проверить подлинность пользователя телефона в Android? - PullRequest
2 голосов
/ 11 апреля 2020

Как изменить этот onStart() метод, чтобы получить отдельную базу данных аутентификации пользователя телефона?

@Override
protected void onStart() {
    super.onStart();
    FirebaseAuth firebaseAuth = FirebaseAuth.getInstance();
    if (firebaseAuth.getCurrentUser() != null) {
     if(what condition required to check for phone auth){
        startActivity(new Intent(EnterAs.this, UI_Main_User.class));
        finish();
    } else {
       for email auth users
    }
}

1 Ответ

1 голос
/ 11 апреля 2020

Вы можете сделать это, вызвав метод UserInfo getProviderData () объекта FirebaseUser , чтобы получить список всех поставщиков аутентификации, которые используются аутентифицированным пользователем. Еще одна вещь, на которую следует обратить внимание: каждый класс UserInfo содержит метод с именем getProviderId () , который возвращает идентификатор поставщика.

Работоспособное решение в коде может выглядеть как это:

FirebaseUser firebaseUser = FirebaseAuth.getInstance().getCurrentUser();
List<? extends UserInfo> userInfos = firebaseUser.getProviderData();
for (UserInfo userInfo : userInfos) {
    String providerId = userInfo.getProviderId();
    if (providerId.equals(PhoneAuthProvider.PROVIDER_ID)) {
        //Your logic goes here
    }
}

Если в будущем вы будете использовать, например, Аутентификация Google с Firebase , то вам следует проверить:

GoogleAuthProvider.PROVIDER_ID
...