В проблемном проекте Аутентификация Firebase не работает для ранее существовавших пользователей, которые уже отображаются в консоли Firebase. Для этих пользователей FirebaseUI неправильно отображает экран для создания новой учетной записи, а затем, если вы продолжите это, в пользовательском интерфейсе отображается сообщение «Регистрация учетной записи электронной почты не удалась», а в журналах Android появляются следующие ошибки. Тот факт, что создать учетную запись не удалось, неудивительно, поскольку пользователь уже существует. Настоящая проблема заключается в том, что пользовательский интерфейс Firebase Auth не должен отображать экран создания учетной записи для существующих пользователей. Когда отображается экран создания учетной записи, в журналах не отображается никаких ошибок.
В качестве альтернативы, если вы создаете новую учетную запись с уникальным адресом электронной почты, все работает как положено. Но затем, если вы выйдете и снова войдете в эту учетную запись, я получу ту же последовательность ошибок, описанную выше.
Код Android в этих проектах идентичен - единственное, что отличается это google-services.json, связывающий его с одной из двух учетных записей Firebase. В двух приложениях для iOS существуют аналогичные симптомы с проблемной учетной записью Firebase. Я пробовал удалить и заново добавить поставщика услуг электронной почты, но это не имеет значения.
Что может быть не так с проблемной учетной записью Firebase?
Код: Выделить всё
2023-11-13 09:48:46.407 14512-14512/net.llamadigital.safetyonsite2 W/EmailProviderResponseHa: No providers known for user (+sos3@gmail.com) this email address may be reserved.
2023-11-13 09:48:46.416 14512-14512/net.llamadigital.safetyonsite2 E/AuthUI: A sign-in error occurred.
com.firebase.ui.auth.FirebaseUiException: Unknown error
at com.firebase.ui.auth.viewmodel.email.EmailProviderResponseHandler$StartWelcomeBackFlow.onSuccess(EmailProviderResponseHandler.java:111)
at com.firebase.ui.auth.viewmodel.email.EmailProviderResponseHandler$StartWelcomeBackFlow.onSuccess(EmailProviderResponseHandler.java:98)
at com.google.android.gms.tasks.zzm.run(com.google.android.gms:play-services-tasks@@18.0.2:1)
at android.os.Handler.handleCallback(Handler.java:958)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:205)
at android.os.Looper.loop(Looper.java:294)
at android.app.ActivityThread.main(ActivityThread.java:8171)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971)
Код: Выделить всё
// Choose authentication providers
List providers = Arrays.asList(
new AuthUI.IdpConfig.EmailBuilder().build());
// You must provide a custom layout XML resource and configure at least one
// provider button ID. It's important that that you set the button ID for every provider
// that you have enabled.
AuthMethodPickerLayout customLayout = new AuthMethodPickerLayout
.Builder(R.layout.layout_login)
.setEmailButtonId(R.id.emailButton)
.build();
// Create and launch sign-in intent
Intent signInIntent = AuthUI.getInstance()
.createSignInIntentBuilder()
.setAuthMethodPickerLayout(customLayout)
.setAvailableProviders(providers)
.setTheme(R.style.Theme_SOS)
.build();
signInLauncher.launch(signInIntent);

Подробнее здесь: https://stackoverflow.com/questions/774 ... t-creation
Мобильная версия