类型不匹配:Activity(用于回调绑定)

Type mismatched : Activity (for callback binding)

我正在尝试在片段中添加 firebase phone OTP 验证,但我卡在了 .setActivity(...)

当我们在 activity 中使用“this”时,但在片段中使用什么?

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)
}

我也提到了但没有帮助

您可以在片段中使用任何一个。

requireActivity() //for fragment
getActivity() as Activity // in Kotlin

看起来您对 getActivity() 的调用是 returning 一个可选的,根据定义可以为空。 .setActivity() 方法不允许传入 null 值。在继续之前验证 getActivity() 不 return null。

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)
}