如何在Kotlin中使用Firebase实现电话身份validation?

我正在开发使用Firebase电话认证的Kotlin应用程序。 我很困惑实施此validation号码。

private fun startPhoneNumberVerification(phoneNumber: String, mCallbacks: PhoneAuthProvider.OnVerificationStateChangedCallbacks?) { Log.d("phoneNumber==", "" + phoneNumber); PhoneAuthProvider.getInstance().verifyPhoneNumber( phoneNumber, // Phone number to verify 60, // Timeout duration TimeUnit.SECONDS, // Unit of timeout this@LoginActivity, // Activity (for callback binding) mCallbacks) } 

在上面的代码中实现并获取错误(“下面的函数不能用提供的arctuments调用”)以及“创建扩展函数PhoneAuthProvider?.verifyPhoneNumber”。 有人可以指导我吗?

我想不出任何其他东西,所以我假设Firebase回调参数被注释为非空。

TL; DR:删除? 从你的回调参数或无操作时它是空的,所以Kotlin可以做一些神奇的types推断。

既然你确定回调不会是空的,你将在onCreate中初始化这个,声明为

  lateinit var mCallbacks: PhoneAuthProvider.OnVerificationStateChangedCallbacks 

这对我有用

 class MainActivity : AppCompatActivity() { var fbAuth = FirebaseAuth.getInstance() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) var btnLogin = findViewById