Как добавить onCompleteListener при входе с предварительно встроенным пользовательским интерфейсом Firebase Auth? - PullRequest
1 голос
/ 21 апреля 2020

Я использую предварительно встроенный пользовательский интерфейс Firebase для аутентификации пользователя, например:

val providers = arrayListOf(
            AuthUI.IdpConfig.EmailBuilder().build(),
            AuthUI.IdpConfig.GoogleBuilder().build())

startActivityForResult(
            AuthUI.getInstance().createSignInIntentBuilder()
                    .setAvailableProviders(providers)
                    .build(),
            RC_SIGN_IN)

Как мне прикрепить OnCompleteListener во время входа в систему? В частности, я хочу позвонить getAdditionalUserInfo().isNewUser(), чтобы проверить, входит ли пользователь в первый раз. Я знаю, что могу добавить onCompleteListener, если я войду, используя email и пароль на основе метода , но я хочу для обработки нескольких провайдеров входа, используя метод встроенного интерфейса пользователя, описанный выше.

1 Ответ

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

В onActivityResult вы получите результат для входа с некоторыми данными, переданными как Parcelable, которые вы уже переопределяете для проверки!

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    super.onActivityResult(requestCode, resultCode, data)

    if (requestCode == RC_SIGN_IN) {

        // this class has all the needed data !
        val response = IdpResponse.fromResultIntent(data)

        if (resultCode == Activity.RESULT_OK) {
            // Successfully signed in            
            val isNewUser = response?.isNewUser!! // flag to check if the user is first time login 
        } 
    }
}

@ См. Класс IdpResponse пакета com.firebase.ui.auth: -

Выкопал немного для вас ;) Удачного кодирования!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...