우선 파이어베이스 콘솔에 들어가주세요.
https://console.firebase.google.com/
프로젝트를 들어가주시면 왼쪽에
Authentication을 들어가주세요.
로그인 방법 설정 클릭
새 제공업체 추가
전화버튼 클릭
사용 설정을 체크해주세요.
여기서 안드로이드 클릭하시면 기본적인 의존성추가부분이 나옵니다.
저는
implementation platform('com.google.firebase:firebase-bom:29.0.2')
implementation 'com.google.firebase:firebase-analytics-ktx'
이렇게 추가했습니다.
그리고 전역변수?(상수) 로
val auth = Firebase.auth
var verificationId = ""
auth, verificationId 를 생성해줍니다.
val callbacks = object : PhoneAuthProvider.OnVerificationStateChangedCallbacks() {
override fun onVerificationCompleted(credential: PhoneAuthCredential) { }
override fun onVerificationFailed(e: FirebaseException) {
}
override fun onCodeSent(verificationId: String, token: PhoneAuthProvider.ForceResendingToken) {
this@MainActivity.verificationId = verificationId
}
}
val optionsCompat = PhoneAuthOptions.newBuilder(auth)
.setPhoneNumber("+821012345678")
.setTimeout(60L, TimeUnit.SECONDS)
.setActivity(this)
.setCallbacks(callbacks)
.build()
PhoneAuthProvider.verifyPhoneNumber(optionsCompat)
auth.setLanguageCode("kr")
onVerificationCompleted 은 번호인증이 끝난 상태로 따로 인증번호를 입력할 필요없는 상태입니다.
onVerificationFailed은 번호인증이 실패한 상태 입니다.
onCodeSent은 번호는 확인 되었으나 인증코드를 입력해야 하는 상태입니다.
인증번호를 발송할 버튼리스너에 해당 코드를 작성해줍니다.
번호를 발송하면 verificationId값을 저장합니다 (이녀석은 나중에 인증번호 확인에 유용하게 쓰일녀석입니다)
핸드폰번호를 국제코드를 적어서 발송하셔야합니다!
국제코드 변환이 귀찮으신 분들께서는
https://onedaycodeing.tistory.com/172
해당 게시글을 참조해주세요!
자! 이제 발송을 했으면 인증여부를 확인해야합니다.
EditText에 인증번호를 적으셨을것이고 이제 인증번호 확인하는 버튼리스너에 코드를 작성하겠습니다.
우선 함수하나 셋팅해줍니다.
private fun signInWithPhoneAuthCredential(credential: PhoneAuthCredential) {
auth.signInWithCredential(credential)
.addOnCompleteListener(this) { task ->
if (task.isSuccessful) {
//인증성공
}
else {
//인증실패
}
}
}
그리고 인증번호 확인버튼 리스너에
val credential = PhoneAuthProvider.getCredential(verificationId, "EditText에 적은 인증번호값")
signInWithPhoneAuthCredential(credential)
이렇게 해주시면 위 함수가 호출되어 성공 및 실패여부를 알 수 있습니다.
여기서 인증번호를 발송하는데 자동으로 입력을 하고싶다! 하시는 분들께서는
https://onedaycodeing.tistory.com/170
이쪽 게시글을 참조해주세요
그리고 번호 발송 시 로봇체크 뜨시는 분들이 계실거에요.
Verifting you're not a robot...이렇게요
이런분들은 조금 복잡하긴 한데
https://onedaycodeing.tistory.com/175
해당 게시글을 봐주세요!
전화번호 인증을 여러번 시도하면 안될수도있다고 합니다.
https://youngest-programming.tistory.com/440
출처 : https://onedaycodeing.tistory.com/174
'프로그래밍 > FireBase' 카테고리의 다른 글
[FireBase] 테스트 전화번호를 추가하는 중에 오류가 발생했습니다. (0) | 2022.07.05 |
---|---|
[FireBase] API사용시 Debug모드에선 되는데 Release 모드에선 안될때 (0) | 2022.07.05 |
[FireBase] 이메일을 이용한 회원가입 기능 구현 (0) | 2022.07.04 |
Firebase연결확인 (0) | 2021.11.24 |
[Android] FireBase 프로젝트에 추가시 GradleScriptException 에러 (0) | 2021.11.24 |
댓글