Nunocky
@Nunocky (Masato NUNOKAWA)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

FirebaseUI-Androidで emailサインインを行うと必ず新規登録に進んでしまう

解決したいこと

FirebaseUI-Android で email認証を行う実験をしています。
ユーザーの新規登録はできるのですが、サインアウト後に同じメールアドレスでサインインしようとしても再び新規登録の画面に遷移してしまいます。

該当するソースコード

AuthUI の処理は以下のとおりです。

class EmailAuthenticationFragment : Fragment() {
    // viewの初期化、コールバック登録は省略

    private val signInLauncher = registerForActivityResult(
        ActivityResultContracts.StartActivityForResult()
    ) { result -> onSignInResult(result) }

    private fun signIn() {
        val authUI = AuthUI.getInstance()

        val providers = listOf(
            EmailBuilder().build(),
        )

        val signInIntent = authUI.createSignInIntentBuilder()
            .setAvailableProviders(providers)
            .build()

        signInLauncher.launch(signInIntent);
    }

    private fun signOut() {
        AuthUI.getInstance()
            .signOut(requireContext())
            .addOnCompleteListener {
                Toast.makeText(context, "Successfully signed out", Toast.LENGTH_SHORT).show()
            }
    }

    private fun onSignInResult(result: ActivityResult) {
        if (result.resultCode == RESULT_OK) {
            val user = FirebaseAuth.getInstance().currentUser
            Toast.makeText(context, "Successfully signed in as ${user?.email}", Toast.LENGTH_SHORT)
                .show()
        } else {
            Toast.makeText(context, "Failed to sign in", Toast.LENGTH_SHORT).show()
        }
    }
}

AndroidManifest.xmlには以下を設定しています。

AndroidManifest.xml
    <uses-permission android:name="android.permission.INTERNET" />
0

1Answer

自己解決。
Firebase Consoleで "メール列挙保護"を無効にすればいい。ただしこれはgoogleが推奨しない方法。

Unfortunately, it seems this project (Firebase UI) is seemingly abandoned by Google, so you either need to roll your own email/password sign-in solution against the Firebase SDKs or look at alternative projects.

切ない

0Like

Your answer might help someone💌