Firebase로 로그인 기능 구현 - 이메일 로그인

Lee HyeongJong·2022년 8월 24일
0

안드로이드

목록 보기
13/43

1. 연결

Tools > Firebase > Authentication
계정 연결

프로젝트 생성

로그인 라이브러리 설치

sign-in method

2. 이메일 회원가입 및 로그인

//    이메일 로그인
    fun signinEmail() {

        var inputId = binding.edtInputId.text.toString()
        var inputPw = binding.edtInputPw.text.toString()

        auth?.signInWithEmailAndPassword(inputId,inputPw)
            ?.addOnCompleteListener {
                    task ->
                if(task.isSuccessful) {
                    // Login, 아이디와 패스워드가 맞았을 때
                    moveMainPage(task.result?.user)
                    Toast.makeText(this,inputId+"님 환영합니다", Toast.LENGTH_LONG).show()
                } else {
                    // Show the error message, 아이디와 패스워드가 틀렸을 때
                    Toast.makeText(this, task.exception?.message, Toast.LENGTH_LONG).show()
                }
            }
    }
//    파이어베이스 유저 확인 후 로그인
    fun moveMainPage(user: FirebaseUser?) {
        if(user != null) {
            startActivity(Intent(this, MainActivity::class.java))
        }
    }
//    파이어베이스 Auth 회원가입
fun signUp() {

        var edtInputNewId = binding.edtInputNewId.text.toString()
        var edtInputNewPw = binding.edtInputNewPw.text.toString()
        var edtInputNewPw2 = binding.edtInputNewPw2.text.toString()

        if (edtInputNewPw == edtInputNewPw2) {

            auth?.createUserWithEmailAndPassword(edtInputNewId, edtInputNewPw)?.addOnCompleteListener {

                    task ->
                if(task.isSuccessful){
                    //정상적으로 이메일과 비번이 전달되어
                    //새 유저 계정을 생성과 서버db 저장 완료
                    //즉, 기존에 있는 계정이 아니다!
                    goLoginMainActivity(task.result?.user)
                    Toast.makeText(this, "회원가입 완료", Toast.LENGTH_SHORT).show()
                }
                else if (task.exception?.message.isNullOrEmpty()==false){
                    //예외 혹은 에러 메시지
                    Toast.makeText(this,task.exception?.message,Toast.LENGTH_LONG).show()
                }
                else {
                    //이미 있는 계정
                    Toast.makeText(this, "이미 등록된 계정입니다", Toast.LENGTH_SHORT).show()
                }

            }

        }
// LoginMainActivity로 이동
fun goLoginMainActivity(user: FirebaseUser?) {
    // 파이어베이스 유저 상태가 생성된 경우 다음 페이지로 넘어갈 수 있음
    if(user != null) {

        startActivity(Intent(this, LoginMainActivity::class.java))

    }
}
profile
코딩을 시작해보자

0개의 댓글