我是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 {
}
}
}
}
答案 0 :(得分:4)
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()
答案 1 :(得分:0)
您必须创建多个活动来简化您的应用程序结构。这样,您还可以管理登录会话。 OnClick注销按钮设置了登录屏幕的意图
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()
}