Как реализовать аутентификацию телефона с использованием Firebase в Котлине?

Я разрабатываю приложение Kotlin с использованием Firebase Phone Authentication. Я запутался в реализации этого контрольного номера.

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

Внедренный выше код и получение ошибки («Ни одна из следующих функций не может быть вызвана с прилагаемыми инструментами»), а также «создание функции расширения PhoneAuthProvider? .verifyPhoneNumber». Может кто-нибудь Пожалуйста, направляйте меня?

Я не могу думать ни о чем другом, поэтому я предполагаю, что параметр обратных вызовов Firebase аннотируется как ненулевое.

TL; DR: удалить ? из вашего параметра callbacks или no-op, когда он является нулевым, поэтому Котлин может сделать вывод о магии.

 class MainActivity : AppCompatActivity() { var fbAuth = FirebaseAuth.getInstance() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) var btnLogin = findViewById<Button>(R.id.btnLogin) btnLogin.setOnClickListener {view -> signIn(view,"user@company.com", "pass") } } fun signIn(view: View,email: String, password: String){ showMessage(view,"Authenticating...") fbAuth.signInWithEmailAndPassword(email, password).addOnCompleteListener(this, OnCompleteListener<AuthResult> { task -> if(task.isSuccessful){ var intent = Intent(this, LoggedInActivity::class.java) intent.putExtra("id", fbAuth.currentUser?.email) startActivity(intent) }else{ showMessage(view,"Error: ${task.exception?.message}") } }) } fun showMessage(view:View, message: String){ Snackbar.make(view, message, Snackbar.LENGTH_INDEFINITE).setAction("Action", null).show() } }