[안드로이드스튜디오_문화][Firebase+RealtimeDatabase]

기말 지하기포·2023년 10월 27일
0

#"Firebase"란 ? 앱을 개발하는데 있어서 , 여러 편의 기능을 제공해주는 구글에 인수된 착한 친구 ㅋ 언제 무엇을 어떻게 사용하는지에 관련한 정보는 아래에 자세하게 나와있음.

Firebase에서 사용이 가능한 각종 편의 기능들

  1. Build
  1. 출시 및 모니터링
  1. 참여

Firebase AndroidStudio에 가져와서 사용하는 방법 및 공식문서 주소

공식 문서 주소 링크 : https://firebase.google.com/docs/auth/android/start?hl=ko&authuser=0

Firebase 시작하기

  1. Firebase 사이트에 들어가서 시작하기 버튼 누르기
  1. 그럼 아래와 같은 화면이 뜨는데 , 프로젝트 추가하기를 누른다
  1. 아래에 보이는 것처럼 영어로 원하는 프로젝트의 이름을 작성해주면 된다.
  1. 계속 버튼 누르면 됨. "이 프로젝트에서 Google 애널리틱스 사용 설정" 설정하면 구글의 애널리틱스 계정이랑 연동되는데 권장한다고 하니까 그냥 사용하면 될듯
  1. 그럼 아래와 같은 화면이 뜨는데 그냥 "프로젝트 만들기" 누르면 된다.
  1. 그럼 아래와 같은 화면이 뜨는데 그냥 "계속" 버튼을 누르면 된다.
  1. 그럼 아래와 같은 화면이 뜨느데 빨간색 동그라미 쳐놓은 안드로이드 아이콘 클릭하면 된다.
  1. 그럼 아래와 같은 화면이 뜨는데 MainActivity에 들가면 package 옆에 package 이름이 뜬다. (빨간색 화살표 참고) 그러면 그 이름을 Firebase 사이트에 작성해주면 된다.

    -여기에 추가할 것 추가하고 앱등록 누르면 된다.
  1. json 파일 다운로드 받기 누르고 , App수준의 프로젝트 폴더에 넣어주라니까 다운로드 받은 곳에서 json 파일을 찾아서 App 수준의 프로젝트 폴더에 넣어주면 된다.

    9-1. 아래 사진의 밑줄 친 부분 처럼 Project로 변경해주고 , 동그라미 친 곳에 있는 app 폴더에 다운 받은 json 파일을 넣어준다.

    9-2. 그럼 아래 사진 처럼 json 파일이 들어가게 된다.

    9-3. !!!!!!!!!!!겁나중요!!!!!!!!!!! json 파일에 중요한 정보 많으니까 나중에 github 또는 플레이스토어에 배포 할 때 올리면 안된다. 아래 사진 처럼 gitignore에 json 파일 경로를 넣어줘야 한다.

9-4. 아래 사진 처럼 나오면 그냥 복부하면된. 아래에 자세하게 작성함.

-위위 사진의 1번 추가하려면 프로젝트 수준의 build.gradle에 "id("com.google.gms.google-services") version "4.4.0" apply false" 추가해주기

  • 위위 사진의 2번 추가하려면 앱수준의 build.gradld에 가서 동그라미 친 부분들을 추가해주면 된다. 다 하고 나서 다음 버튼 누르면 된다.
  1. 그럼 아래와 같은 화면이 뜨면 , "콘솔로 이동" 누르면 된다.
  1. 그럼 밑에 동그라미 부분의 제품카테고리에서 사용하고 싶은거 눌러서 그대로 시키는대로 하면됨. 일단 여기서는 RealtimeDatabase 해볼거임
  1. 이번에는 Realtime Database 알려주겠음. 11번의 사진에서 build에서 Realtime Database 누르면 아래와 같은 게 보일거임 그럼 데이터베이스 만들기 누르면 됨.
  1. 그럼 Database 설정 창이 뜨는데
    - 데이터베이스 옵션에서는 그냥 미국 누르면 되고
    - 테스트 모드에서 시작 누르면 된다. 그리고 마지막으로 사용설정 눌러주면 된다. 필요하면 잠금모드로 시작 누르면 됨.
  1. 아래 사진의 동그라미 친 부분이 사용할 RealtimeDatabase의 주소야.
    글고 사진엔 없지만 화면 위에 보면 보안규칙도 있을거임. 거기서 보안규칙 설정해주면됨.
  1. 안드로이드 스튜디오에 RealtimeDatabase 가져오기
    공식문서 주소 : https://firebase.google.com/docs/database/android/start?hl=ko 에 들어가서 - 밑줄 친 부분의 시작하기를 누르고 ,
    - 밑줄 친 부분을 복붘해서 app 수준의 build.gradle에 넣어주면 된다.

16.RealtimeDatabase는 Data를 Json 형식으로 저장한다.
!!중요!! 무조건 데이터 평면화 시키기 : Object 접근을 자유롭게 할 수 있어.
공식 문서 주소 => https://firebase.google.com/docs/database/admin/structure-data?hl=ko

  1. RealtimeDatabase에 Data를 쓰는 방법 ,
    -1. 데이터 평면화 시킨 Json 파일 만들기

    -2. Json 파일에 알맞는 Key 값을 안스에 넣어주기(아래 사진 참고)
    - DB_URL은 위에서 실시간 데이터 베이스 위치를 싱가포르로 설정 했을 때만, 설정해도 ㄱㅊ을듯 좀 있다가 아래에서 Firebase.database(여기에 DB_URL 넣어줘야 해 : 실시간 데이터 베이스의 위치를 싱가포르로 하였다면)

    -3. Firebase.database.reference를 사용해서 DatabaseReference의 인스턴스 가져오기.
    -위 사진은 공식문서에 나와있는 FirebaseRealtimeDatabase의 객체를 안스로 가져온느 방법임
    - 코드 작성을 이렇게 해서 DatabaseReference의 객체를 가져오면 된다.

    -4. RealtimeDatabase의 하위 폴더를 만들어준다. 이때 , child()안에 들어가는 문자열의 이름으로 하위 폴더가 생성된다. 그러면 아래와 같은 결과가 나오는데, RealtimeDatabase의 URL 주소의 하위에 폴더가 생긴다.
    -5번 코드까지 실행하면 나오는 RealtimeDatabase의 결과임.

    -위 코드가 실행되면, ㄱ.RealtimeDatabase의 URL 주소 하위에 DB_USERS라는 변수에 저장된 문자열이 폴더이름으로 된채로 폴더화 된다. => ㄴ. 그리고 나서 DB_USERS라는 변수에 저장된 문자열을 폴더이름으로 갖는 폴더 밑에 userId라는 변수에 저장된 문자열을 이름으로 갖는 폴더가 생긴다.

    -5. updateChildren(user)을 실행하면 userId 변수에 저장된 문자열을 폴더이름으로 가지는 폴더의 내부에 user에 대한 정보가 저장된다. 이때 user는 map 자료형으로 만들어진 녀석이다.
    =>updateChildren(user) 대신에 , setValue(user)를 사용해도 된다.
    -4번의 사진 참고하면 될 듯.
    - RealtimeDatabase에 저장 할 수 있는 Data 유형임.
  1. RealtimeDatabase에 Data를 읽는 방법

    -방법에는 총 3가지가 존재한다.
    -Data를 한 번만 가져오고 싶을 때 사용한다.

    -Data가 변경될 때마다 값을 가져오고 싶을 때 사용한다.

    -위 세가지 방법 중 상황과 필요에 따라 그냥 사용하면 된다..
    -공식문서 링크 작성했으므로 , 참고 바람 : https://firebase.google.com/docs/database/android/read-and-write?hl=ko#read_data
    -위 사진에 설명이랑 코드 작성되어있으므로 참고 바람.
    위 사진에서 snapshot이 들어가는게 맨위에서 DB_USERS 폴더에서 시작했으니까 snapshot이 의미하는 것은 DB_USERS의 snapshot이다.

Firebase Realtime Database를 사용 할 때 중요한 것은 다음과 같다.
1. Json을 활용해서 DB의 Data 구조 설정해주기(코드 작업 할 떄 보면서 할거야. : Data Inflate 꼭 시켜주기)
2. DB에 데이터 쓰기
->child() : 폴더 이동
->updateChildren() || setValue() || push() => 데이터 쓰는 방법 3가지
3. DB에 데이터 읽기
->addValueEnventListener || get || addListenerForSingleValueEvent => 데이터 읽는 방법 3가지

profile
포기하지 말기

0개의 댓글