Я использовал Firebase AuthUI в своем приложении для входа в систему с помощью методов Google, телефона и электронной почты.Мне нужно хранить данные в Firestore после успешной аутентификации.
Код, который я использовал для запуска Firebase Auth Screen с перечисленными провайдерами diff:
startActivityForResult(
AuthUI.getInstance()
.createSignInIntentBuilder()
.setIsSmartLockEnabled(false, true)
.setLogo(R.drawable.yam_logo_orange_512)
.setAvailableProviders(Arrays.asList(
new AuthUI.IdpConfig.EmailBuilder().build(),
new AuthUI.IdpConfig.GoogleBuilder().build(),
new AuthUI.IdpConfig.PhoneBuilder().build()
)).build(),
RC_SIGN_IN);
Но, как я писал выше - яЯ использую AuthUI, который предоставляет кнопки по умолчанию и пользовательский интерфейс - у меня нет владельца поля номера телефона и то же самое для номера телефона.
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == RC_SIGN_IN) {
IdpResponse response = IdpResponse.fromResultIntent(data);
String providerType = response.getProviderType();
if (resultCode == RESULT_OK) {
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
if (user != null) {
switch (providerType) {
case Constants.PROVIDER_GOOGLE:
account = GoogleSignIn.getLastSignedInAccount(this);
if (account != null) {
firebaseAuthWithGoogle(account, response.isNewUser());
}
break;
case Constants.PROVIDER_PHONE:
if(null!=phoneAuthCredential){
signInWithPhoneAuthCredential(phoneAuthCredential, response.isNewUser());
}
break;
case Constants.PROVIDER_EMAIL:
break;
}
}
}
}
}
Пожалуйста, помогите мне в этом.Нужно ли сделать специальный экран для получения номера, а затем зарегистрировать обратный вызов PhoneAuth?
Спасибо, Канак