본문 바로가기
Java/AndroidStudio

Android - FireBase 사용 설정

by 하니__ 2024. 6. 20.

 

 

https://console.firebase.google.com/

 

로그인 - Google 계정

이메일 또는 휴대전화

accounts.google.com

 

링크 들어가서

 

프로젝트 추가

 

사용할 플랫폼 안드로이드 선택

 

 

 

 

위에서 만든 패키지 이름 작성

 

다운로드 후

 

프로젝트뷰로 전환

그리고 저 위치에 이동 혹은 붙여넣기

다른곳에 넣지말자

 

 

id("com.google.gms.google-services") version "4.4.2" apply false

buildscript {
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath ("com.android.tools.build:gradle:4.2.2")
        classpath ("com.google.gms:google-services:4.3.10")
    }
}

프로젝트 수준에다가 넣어준다

 

 

 

이번엔 모듈(앱)수준

id("com.google.gms.google-services")

implementation(platform("com.google.firebase:firebase-bom:32.3.1"))
implementation("com.google.firebase:firebase-auth:22.1.2")
implementation("com.google.firebase:firebase-database:20.2.2")

 

 

파이어베이스 콘솔

리얼타임 데이터베이스 선택

 

데이터베이스위치는 가장 가까운 싱가폴 선택

상단의 규칙 선택

 

false를 true로 변경

 

 

게시 선택

 

메인액티비티

// Firebase 인증 및 데이터베이스 초기화
mAuth = FirebaseAuth.getInstance();
currentUser = mAuth.getCurrentUser();
if (currentUser == null) {
    // 사용자가 로그인되어 있지 않은 경우, 로그인 화면으로 이동
    Intent intent = new Intent(MainActivity.this, LoginActivity.class);
    startActivity(intent);
    finish(); // MainActivity를 종료하고 LoginActivity로 이동
    return;
}

 

를 통해

로그인 or 회원가입페이지로 이동시키고

 

기능만을 위한 간단하게 위치시켰고

 

여기서 로그인버튼을 누르면 로그인을

사인업 버튼을 누르면 회원가입을 진행하는 코드 작성

 

 

private FirebaseAuth mAuth;

 

를 멤버변수로 등록

 

 

mAuth = FirebaseAuth.getInstance();

를 다른 버튼들과 텍스트들과 함께 onCreate 부분에서 초기화시켜주고

 

 

private void loginUser() {
    String email = editTextEmail.getText().toString().trim();
    String password = editTextPassword.getText().toString().trim();

    if (email.isEmpty() || password.isEmpty()) {
        Toast.makeText(this, "Email and Password must not be empty", Toast.LENGTH_SHORT).show();
        return;
    }

    mAuth.signInWithEmailAndPassword(email, password).addOnCompleteListener(this, task -> {
        if (task.isSuccessful()) {
            Intent intent = new Intent(LoginActivity.this, MainActivity.class);
            startActivity(intent);
            finish();
        } else {
            Toast.makeText(LoginActivity.this, "Authentication failed", Toast.LENGTH_SHORT).show();
        }
    });
}

로그인 함수를 만들어 로그인버튼시 호출

 

이때 로그인을 위한 코드는

이메일과 패스워드를 체크하는

signInWithEmailAndPassword(email, password).addOnCompleteListener

이메일과 패스워드가 맞다면 메인액티비티로 이동한다

 

 

 

 

private void registerUser() {
    String email = editTextEmail.getText().toString().trim();
    String password = editTextPassword.getText().toString().trim();

    if (email.isEmpty() || password.isEmpty()) {
        Toast.makeText(this, "Email and Password must not be empty", Toast.LENGTH_SHORT).show();
        return;
    }

    mAuth.createUserWithEmailAndPassword(email, password).addOnCompleteListener(this, task -> {
        if (task.isSuccessful()) {
            Toast.makeText(LoginActivity.this, "Registration successful", Toast.LENGTH_SHORT).show();
            // 회원가입 후 입력 필드 초기화
            editTextEmail.setText("");
            editTextPassword.setText("");
        } else {
            Toast.makeText(LoginActivity.this, "Registration failed: " + task.getException().getMessage(), Toast.LENGTH_SHORT).show();
            Log.e("Firebase Auth", "Registration failed", task.getException());
        }
    });
}

회원가입 함수를 만들어 회원가입 버튼시 호출 시킨다

 

이때 회원가입을 위한 코드는

createUserWithEmailAndPassword(email, password).addOnCompleteListener(this, task

부분

 

성공한다면 이메일과 패스워드 부분을 초기화 시키고 

다시 로그인을 진행하면 된다

 

 

그리고 위의 로그인,회원가입 인증을 위해

 

파이어베이스 콘솔로 돌아가

빌드에서 인증부분을 선택하여 들어가자

 

 

그리고 로그인방법클릭,

새 제공 추가

 

 

이메일/비밀번호를 선택하여 사용설정으로 체크를 하면 된다

 

 

인증과 함께 회원가입절차는 완료