Я пытаюсь реализовать метод аутентификации firebase, используя номер телефона, но когда я нажимаю кнопку, чтобы получить код смс, индикатор загрузки просто загружается, и я не получаю смс. Также не создается ни одна учетная запись на консоли Firebase, поскольку я не могу зарегистрировать свою учетную запись, если не введу свой код подтверждения.
RegisterLoginActivity
package com.example.madistrezsieu
import android.content.Intent
import android.os.Bundle
import android.view.View
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import com.google.android.gms.tasks.Task
import com.google.firebase.FirebaseException
import com.google.firebase.auth.AuthResult
import com.google.firebase.auth.FirebaseAuth
import com.google.firebase.auth.PhoneAuthCredential
import com.google.firebase.auth.PhoneAuthProvider
import kotlinx.android.synthetic.main.activity_register_login.*
import java.util.concurrent.TimeUnit
class RegisterLoginActivity : AppCompatActivity() {
lateinit var mCallbacks: PhoneAuthProvider.OnVerificationStateChangedCallbacks
lateinit var mAuth: FirebaseAuth
var verificationId = ""
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_register_login)
mAuth = FirebaseAuth.getInstance()
veriBtn.setOnClickListener {
view: View? -> progress.visibility = View.VISIBLE
verify ()
}
authBtn.setOnClickListener {
view: View? -> progress.visibility = View.VISIBLE
authenticate()
}
}
private fun verificationCallbacks () {
mCallbacks = object: PhoneAuthProvider.OnVerificationStateChangedCallbacks() {
override fun onVerificationCompleted(credential: PhoneAuthCredential) {
progress.visibility = View.INVISIBLE
signIn(credential)
}
override fun onVerificationFailed(p0: FirebaseException?) {
//TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
override fun onCodeSent(verfication: String?, p1: PhoneAuthProvider.ForceResendingToken?) {
super.onCodeSent(verfication, p1)
verificationId = verfication.toString()
progress.visibility = View.INVISIBLE
}
}
}
private fun verify () {
verificationCallbacks()
val phnNo = phnNoTxt.text.toString()
PhoneAuthProvider.getInstance().verifyPhoneNumber(
phnNo,
60,
TimeUnit.SECONDS,
this,
mCallbacks
)
}
private fun signIn (credential: PhoneAuthCredential) {
mAuth.signInWithCredential(credential)
.addOnCompleteListener {
task: Task<AuthResult> ->
if (task.isSuccessful) {
toast("Logged in Successfully :)")
startActivity(Intent(this, LatestMessagesActivity::class.java))
}
}
}
private fun authenticate () {
val verifiNo = verifiTxt.text.toString()
val credential: PhoneAuthCredential = PhoneAuthProvider.getCredential(verificationId, verifiNo)
signIn(credential)
}
private fun toast (msg: String) {
Toast.makeText(this, msg, Toast.LENGTH_LONG).show()
}
}
activity_register_login.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.madistrezsieu.RegisterLoginActivity">
<EditText
android:id="@+id/phnNoTxt"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="88dp"
android:hint="Phone Number"
android:inputType="number"
android:textAlignment="center"
android:textSize="24sp" />
<EditText
android:id="@+id/verifiTxt"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:textAlignment="center"
android:inputType="number"
android:layout_below="@+id/phnNoTxt"
android:layout_marginTop="43dp"
android:hint="Verification Code" android:layout_alignParentLeft="true"/>
<Button
android:id="@+id/veriBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/verifiTxt"
android:layout_centerHorizontal="true"
android:layout_marginTop="35dp"
android:text="Verify" />
<Button
android:id="@+id/authBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/veriBtn"
android:layout_centerHorizontal="true"
android:layout_marginTop="26dp"
android:text="Authenticate" />
<ProgressBar
android:id="@+id/progress"
style="?android:attr/progressBarStyle"
android:layout_width="150dp"
android:layout_height="150dp"
android:layout_alignTop="@+id/phnNoTxt"
android:layout_centerHorizontal="true"
android:layout_marginTop="28dp"
android:visibility="invisible" />
</RelativeLayout>