как вернуться на экран входа в систему после того, как пользователь нажмет на кнопку выхода в kotlin? - PullRequest
2 голосов
/ 29 апреля 2019

Я новичок с kotlin, и я хочу знать, как мы можем вернуть пользователей для входа в экран, используя firebase-ui, когда пользователь нажимает кнопку выхода. я пытаюсь реализовать это на Android.

class MainActivity : AppCompatActivity() {
private val RC_SIGN_IN = 123;
val auth=FirebaseAuth.getInstance()
// Choose authentication providers
val providers = arrayListOf(
    AuthUI.IdpConfig.EmailBuilder().build(),
    AuthUI.IdpConfig.PhoneBuilder().build(),
    AuthUI.IdpConfig.GoogleBuilder().build())

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    signout.setOnClickListener{v ->
        AuthUI.getInstance()
            .signOut(this)
            .addOnCompleteListener {
                // ...
            }
    }

    if(auth.currentUser!=null)
    {

    }
    else
    {
        // Create and launch sign-in intent
        startActivityForResult(
            AuthUI.getInstance()
                .createSignInIntentBuilder()
                .setAvailableProviders(providers)
                .build(),
            RC_SIGN_IN)
    }
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    super.onActivityResult(requestCode, resultCode, data)
    if (requestCode == RC_SIGN_IN) {
        val response = IdpResponse.fromResultIntent(data)
        if (resultCode == Activity.RESULT_OK) {                
            val user = FirebaseAuth.getInstance().currentUser
        } else {

        }
    }
}

}

Ответы [ 2 ]

4 голосов
/ 29 апреля 2019
val intent = Intent(context, LoginActivity::class.java)
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK)
startActivity(intent)
finish()
0 голосов
/ 29 апреля 2019

Вы должны создать несколько действий для простой структуры вашего приложения.Этим вы также можете управлять сеансами входа в систему.Кнопка выхода из системы OnClick задает намерение войти в систему Screen

signout.setOnClickListener {

        val intent = Intent(this, LoginActivity::class.java)
                    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK)
                startActivity(intent)
                finish()    

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