'Type mismatched : Activity (for callback binding)
I am trying to add firebase phone OTP verification in a fragment and I got stuck at .setActivity(...) 
when in an activity we use "this", but in a fragment what to use?
private fun sendVerificationcode(number: String) {
val options = PhoneAuthOptions.newBuilder(firebaseAuth)
.setPhoneNumber(number) // Phone number to verify
.setTimeout(60L, TimeUnit.SECONDS) // Timeout and unit
.setActivity(this) // Activity (for callback binding)
.setCallbacks(mCallBacks) // OnVerificationStateChangedCallbacks
.build()
PhoneAuthProvider.verifyPhoneNumber(options)
}
I also referred to this stackoverflow solutionbut didn't help
Solution 1:[1]
You can use any of one in fragment.
requireActivity() //for fragment
getActivity() as Activity // in Kotlin
Solution 2:[2]
It looks like your call to getActivity() is returning an optional, which by definition can be null. The .setActivity() method does not allow null values to be passed in. Validate getActivity() doesn't return null before you proceed.
getActivity().let{ activity ->
val options = PhoneAuthOptions.newBuilder(firebaseAuth)
.setPhoneNumber(number) // Phone number to verify
.setTimeout(60L, TimeUnit.SECONDS) // Timeout and unit
.setActivity(activity) // Activity (for callback binding)
.setCallbacks(mCallBacks) // OnVerificationStateChangedCallbacks
.build()
PhoneAuthProvider.verifyPhoneNumber(options)
}
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Ranjeet Chouhan |
| Solution 2 | eimmer |
