728x90
회원가입 및 로그인에서 이메일을 입력할 때 이메일 형식을 검사해 형식이 맞지 않을 경우 경고문구를 띄우는 기능을 구현해보겠습니다.
1. 먼저 이메일 형식을 검사할 이메일 정규식은 아래와 같습니다.
// 이메일 검사 정규식
private val emailValidation =
"^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$"
2. 이메일 형식 검사를 하는 checkEmail() 함수를 만들어보면 아래와 같습니다.
- 이메일을 입력하는 EditText에 입력한 값을 email 변수에 저장합니다.
- 이메일 정규식과 email 값의 패턴이 맞는지 검사해 true, false 리턴값을 받습니다.
- 이메일 형태가 아닐 경우 (false), TextView에 이메일 형식을 확인하라는 문구를 띄웁니다. 색깔은 빨간색으로 설정하였습니다.
// 이메일 형식 검사
fun checkEmail(): Boolean {
var email = binding.emailEdit.text.toString()
val pattern = Pattern.matches(emailValidation, email) // 서로 패턴이 맞는지
if (pattern) { // 이메일 형태가 맞으면
binding.emailValidation.text = ""
return true
} else { // 이메일 형태가 아니면 아래에 문구를 띄운다.
binding.emailValidation.text = "* 이메일 형식을 확인해주세요!"
binding.emailValidation.setTextColor(-65536)
return false
}
}
다음과 같이 함수를 만든 후, 앞선 포스트에서 구현했던 doLogin(), doSignUp() 함수에서 각각 해당 함수를 호출해주면 됩니다.
1) doLogin()
private fun doLogin(userEmail: String, userPw: String) {
// 이메일 형식 다시 한 번 체크
if (!checkEmail()) { // 이메일 형식이 아닐 경우
Toast.makeText(this, "이메일 형식을 확인해주세요!", Toast.LENGTH_SHORT).show()
}
// 생략..
}
2) doSignUp()
회원가입에서는 OnCreate()에서 이메일을 입력하는 EditText의 text가 바뀔 때마다 호출되게 구현하기 위해, emailSignUpEdit 에 TextWatcher을 연결하였습니다.
override fun onCreate(savedInstanceState: Bundle?) {
// 생략..
val email = binding.emailSignUpEdit.text
// 생략..
// emailSignUpEdit 에 TextWatcher 연결
emailSignUpEdit.addTextChangedListener(object : TextWatcher {
override fun afterTextChanged(p0: Editable?) {
// text가 변경된 후 호출
// p0 : 변경 후 문자열
}
override fun beforeTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
// text가 변경되기 전 호출
// p0 : 변경 전 문자열
}
override fun onTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
// text가 바뀔 때마다 호출
checkEmail()
}
})
// 생략..
}
이렇게 이메일 형식 검사 기능까지 추가하여 안드로이드에서 파이어베이스를 연동하여 회원가입 및 로그인 기능을 완성하였습니다.
728x90
'Front-End > Android' 카테고리의 다른 글
[Android (Kotlin)] 네이버 지도 API 연결하기 (0) | 2023.02.09 |
---|---|
[Android] Kotlin & Firebase/Firestore 연동(회원가입 및 로그인 구현) (0) | 2022.11.11 |