[Firebase] 사용자 인증 - Authentication

원준·2023년 10월 11일

Firebase

목록 보기
4/11

레이아웃 코드는 제외한다.

Firebase 설정

  • 사용자 인증에 관련해 사용할려면 설정부터 해야한다!
  • 이메일/비밀번호 인증에 대해서만 만들 예정이다!

Android에서 만들어 보자!

1. 설치

  • Module 수준 Gradle 파일에 인증 라이브러리를 추가하자!
  dependencies {
      // ...
      // Firebase library dependencies
      implementation("com.google.firebase:firebase-auth")
  }

2. 회원가입

  1. 사용자 인증을 사용하기 클래스를 선언하고, 객체를 만들어주자!

     private FirebaseAuth mAuth;
    
      @Override
      protected void onCreate(Bundle savedInstanceState) {
         ...
    
         mAuth = FirebaseAuth.getInstance();
      }
  2. 이메일과 비밀번호를 입력 받았다는 경우에 따라서 사용자 회원가입을 시도하자!

    // 이메일과 비밀번호 받아서 회원가입 시도 
    // email : 입력받은 이메일
    // password : 입력받은 비밀번호
    mAuth.createUserWithEmailAndPassword(email, password)
           .addOnCompleteListener(RegisterActivity.this
                   , new OnCompleteListener<AuthResult>() {
               @Override
               public void onComplete(@NonNull Task<AuthResult> task) {
                   progressBar.setVisibility(View.GONE);
                   if(task.isSuccessful()){
                       // 회원가입 성공시, 유저의 정보를 검색, 활용하기 위해 실시간 데이터 베이스 저장 
                       // 채팅방을 만들때 사용할 예정
                       FirebaseUser user = mAuth.getCurrentUser();
                       String uid = user.getUid().toString();
    
                       FirebaseDatabase.getInstance()
                               .getReference("User").child("users") // 경로는 User/users에 저장한다. 
                               .child(uid).setValue(new User(uid, name, email));
    
                       Intent intent = new Intent(RegisterActivity.this, LoginActivity.class);
                       startActivity(intent);
    
                       finish();
                   }else{
                       Log.i("확인", task.getException().getMessage());
                   }
               }
           });

    실시간 데이터베이스에 저장하는 부분은 이 후 채팅방을 위해 활용할 예정이니, 회원가입만 할 생각이라면 저장하는 부분은 생략해도 된다!

  3. 완성된 모습!!

    • 회원가입을 진행하는 화면
  • 사용자가 추가된 화면

3. 로그인

  1. 회원가입과 동일하게 사용자 인증을 사용하기 클래스를 선언하고, 객체를 만들어주자!

     private FirebaseAuth mAuth;
    
      @Override
      protected void onCreate(Bundle savedInstanceState) {
         ...
    
         mAuth = FirebaseAuth.getInstance();
      }
  2. 이메일과 비밀번호를 입력 받았다는 경우에 따라서 사용자 로그인을 시도하자!

// 이메일, 비밀번호를 받아서 로그인을 시도 
// email : 입력받은 이메일
// password : 입력받은 비밀번호
mAuth.signInWithEmailAndPassword(email, password)
        .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
            @Override
            public void onComplete(@NonNull Task<AuthResult> task) {
                progressBar.setVisibility(View.GONE);
                if(task.isSuccessful()){
                    // 로그인 정상적으로 성공시, ChatActivity(채팅방 리스트)로 이동
                    Intent intent = new Intent(LoginActivity.this, ChatActivity.class);
                    startActivity(intent);

                    finish();
                }else{
                    Toast.makeText(
                            LoginActivity.this,
                            "이메일, 비밀번호가 다릅니다.",
                            Toast.LENGTH_SHORT
                    );
                }
            }
        });
  1. 완선된 모습!!

    로그인을 진행하는 화면

4. 로그아웃

  • 로그아웃은 진짜 정말 레전드로 간단하다!
FirebaseAuth.getInstance().signOut();
  • 단 한줄만 작성하면, 로그인되어 있는 Firebase 사용자를 로그아웃 시켜버린다!!
profile
공부해보자

0개의 댓글