in auth/app/src/main/java/com/google/firebase/quickstart/auth/kotlin/MultiFactorUnenrollFragment.kt [26:65]
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.smsCode.visibility = View.GONE
binding.finishMfaSignIn.visibility = View.GONE
// Users are currently limited to having 5 second factors
val phoneFactorButtonList = listOf(
binding.phoneFactor1, binding.phoneFactor2, binding.phoneFactor3,
binding.phoneFactor4, binding.phoneFactor5)
for (button in phoneFactorButtonList) {
button.visibility = View.GONE
}
val multiFactorInfoList = FirebaseAuth.getInstance().currentUser!!.multiFactor.enrolledFactors
for (i in multiFactorInfoList.indices) {
val phoneMultiFactorInfo = multiFactorInfoList[i] as PhoneMultiFactorInfo
val button = phoneFactorButtonList[i]
button.visibility = View.VISIBLE
button.text = phoneMultiFactorInfo.phoneNumber
button.isClickable = true
button.setOnClickListener {
Firebase.auth
.currentUser!!
.multiFactor
.unenroll(phoneMultiFactorInfo)
.addOnCompleteListener { task ->
if (task.isSuccessful) {
Toast.makeText(context,
"Successfully unenrolled!", Toast.LENGTH_SHORT).show()
findNavController().popBackStack()
} else {
Toast.makeText(context,
"Unable to unenroll second factor. ${task.exception}",
Toast.LENGTH_SHORT)
.show()
}
}
}
}
}