Проблема с FirebaseAuthUI продолжает пытаться зарегистрировать меня вместо входа в систему при попытке использовать элек ⇐ Android
-
Гость
Проблема с FirebaseAuthUI продолжает пытаться зарегистрировать меня вместо входа в систему при попытке использовать элек
Я разрабатываю приложение для Android, используя пользовательский интерфейс аутентификации Firebase в качестве поставщика аутентификации. Я включил адрес электронной почты/пароль и вход в Google на консоли Firebase, но по какой-то причине, когда я пишу свой адрес электронной почты и нажимаю «Далее», он переходит к знаку вверх вместо того, чтобы запрашивать мой пароль, и если я заполняю форму и нажимаю «Сохранить», он сообщает, что с моим адресом электронной почты произошла ошибка (потому что он уже есть в БД). Аутентификация Google работает нормально. Я шаг за шагом следовал инструкциям Google, но они все равно не работают.
Я попытался войти в систему с помощью метода FirebaseAuth.getInstance().signInWithEmailAndPassword(), и он работает нормально. Я попытался выполнить один из приведенных примеров, и возникла та же проблема.
Это код, создающий проблему:
импортировать android.os.Bundle импортировать android.util.Log импортировать androidx.activity.ComponentActivity импортировать com.firebase.ui.auth.AuthUI импортировать com.firebase.ui.auth.FirebaseAuthUIActivityResultContract импортировать com.firebase.ui.auth.data.model.FirebaseAuthUIAuthenticationResult импортировать com.google.firebase.auth.FirebaseAuth класс MainActivity : ComponentActivity() { частный val SignInLauncher = RegisterForActivityResult( FirebaseAuthUIActivityResultContract() ) {рез -> this.onSignInResult(рез) } переопределить fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) если (FirebaseAuth.getInstance().currentUser == null) { Log.d("MainActivity", "Пользователь не вошел в систему") войти() } еще { Log.d("MainActivity", "Пользователь уже вошел в систему") } } переопределить удовольствие onDestroy() { супер.onDestroy() } личное развлечение, вход() { val поставщики = arrayListOf( AuthUI.IdpConfig.EmailBuilder().build(), AuthUI.IdpConfig.GoogleBuilder().build() ) val SignInIntent = AuthUI.getInstance() .createSignInIntentBuilder() .setIsSmartLockEnabled(ложь) .setAvailableProviders(поставщики) .setAlwaysShowSignInMethodScreen(истина) .строить() SignInLauncher.launch(signInIntent) } частное развлечение onSignInResult (res: FirebaseAuthUIAuthenticationResult) { когда (res.resultCode) { РЕЗУЛЬТАТ_ОК -> { // Успешный вход val user = FirebaseAuth.getInstance().currentUser } RESULT_CANCELED -> { // Вход отменен } еще -> { // Ошибка входа } } } }
Я разрабатываю приложение для Android, используя пользовательский интерфейс аутентификации Firebase в качестве поставщика аутентификации. Я включил адрес электронной почты/пароль и вход в Google на консоли Firebase, но по какой-то причине, когда я пишу свой адрес электронной почты и нажимаю «Далее», он переходит к знаку вверх вместо того, чтобы запрашивать мой пароль, и если я заполняю форму и нажимаю «Сохранить», он сообщает, что с моим адресом электронной почты произошла ошибка (потому что он уже есть в БД). Аутентификация Google работает нормально. Я шаг за шагом следовал инструкциям Google, но они все равно не работают.
Я попытался войти в систему с помощью метода FirebaseAuth.getInstance().signInWithEmailAndPassword(), и он работает нормально. Я попытался выполнить один из приведенных примеров, и возникла та же проблема.
Это код, создающий проблему:
импортировать android.os.Bundle импортировать android.util.Log импортировать androidx.activity.ComponentActivity импортировать com.firebase.ui.auth.AuthUI импортировать com.firebase.ui.auth.FirebaseAuthUIActivityResultContract импортировать com.firebase.ui.auth.data.model.FirebaseAuthUIAuthenticationResult импортировать com.google.firebase.auth.FirebaseAuth класс MainActivity : ComponentActivity() { частный val SignInLauncher = RegisterForActivityResult( FirebaseAuthUIActivityResultContract() ) {рез -> this.onSignInResult(рез) } переопределить fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) если (FirebaseAuth.getInstance().currentUser == null) { Log.d("MainActivity", "Пользователь не вошел в систему") войти() } еще { Log.d("MainActivity", "Пользователь уже вошел в систему") } } переопределить удовольствие onDestroy() { супер.onDestroy() } личное развлечение, вход() { val поставщики = arrayListOf( AuthUI.IdpConfig.EmailBuilder().build(), AuthUI.IdpConfig.GoogleBuilder().build() ) val SignInIntent = AuthUI.getInstance() .createSignInIntentBuilder() .setIsSmartLockEnabled(ложь) .setAvailableProviders(поставщики) .setAlwaysShowSignInMethodScreen(истина) .строить() SignInLauncher.launch(signInIntent) } частное развлечение onSignInResult (res: FirebaseAuthUIAuthenticationResult) { когда (res.resultCode) { РЕЗУЛЬТАТ_ОК -> { // Успешный вход val user = FirebaseAuth.getInstance().currentUser } RESULT_CANCELED -> { // Вход отменен } еще -> { // Ошибка входа } } } }
Мобильная версия