본문 바로가기

major/Android

[Android] Firebase Database 사용하기

Firebase에서 제공하는 Database를 사용하는 방법을 정리했습니다.

 

1. Firebase 프로젝트 설정

Firebase에서 프로젝트를 새로 생성합니다. 

Firebase

생성한 프로젝트 대쉬보드에 들어갑니다.

프로젝트 대쉬보드

앱에 Firbase를 추가하여 시작하기에서 안드로이드 아이콘을 클릭합니다.

그러면 아래와 같이 Android 앱에 Firebase 추가하는 창이 뜹니다.

앱에 Firebase 추가

프로젝트의 패키지 이름을 적고 앱 등록을 합니다. 저는 나중에 알아보기 편하게 앱 닉네임도 적었습니다.

앱에 firebase 추가하기

google-services.json 파일을 다운로드 하고 안드로이드 스튜디오에 프로젝트를 엽니다.

안드로이드 스튜디오

Android 보기에서 Project 보기로 변경한 후에 app 안에 다운받은 google-services.json 파일을 드래그&드롭으로 넣습니다.

그리고 build.gradle(Project)의 buildscript{ dependencies{ "여기" }}에 아래의 코드를 추가합니다.

classpath 'com.google.gms:google-services:4.3.3'

안드로이드 스튜디오 프로젝트 build.gradle (Project)

또 build.gradle(App)의 에 아래의 코드를 추가합니다.

apply plugin: 'com.google.gms.google-services'

dependencies {
  implementation 'com.google.firebase:firebase-analytics:17.2.2'
  implementation 'com.google.firebase:firebase-database:19.1.0'
}

firebase의 database를 사용할꺼여서 그 코드도 추가했습니다.

안드로이드 스튜디오 프로젝트 build.gradle (App)

코드를 추가했다면 Sync Now를 클릭합니다.

그리고 Run을 눌러서 앱 실행을 한번 해주세요.

위 과정이 모두 실행되었다면 아래와 같이 Firebase 설치가 확인되었다는 문구가 뜹니다.

firebase

2. Firebase Database 추가하기

Firebase 콘솔에서 Database 항목에 들어가서 새로운 데이터베이스를 생성합니다.

그리고 Cloud FireStore로 되어있는 걸 Realtime Database로 변경합니다.

Firebase Database

규칙에 들어가서 ".read":false, ".write":false로 되어있는걸 둘 true로 변경합니다.

Firebase Database

이제 Firebase 세팅은 끝입니다.

다시 안드로이드 스튜디오에 돌아가서 Database에 데이터를 넣어보겠습니다.

3. 데이터 쓰기

간단한 예제입니다.

public class MainActivity extends AppCompatActivity {

    FirebaseDatabase database;
    DatabaseReference myRef;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        database = FirebaseDatabase.getInstance();
        myRef = database.getReference("database");

        myRef.setValue("hello, world!");
    }
}

HashMap을 사용해서 객체를 만들어서 저장할 수도 있습니다.

 

간단한 예제만 돌려봤는데도 굉장히 사용하기 편했습니다. 앞으로 간단한 앱을 만들기에는 충분한 것 같습니다.

제가 noSQL은 익숙하지 않아서 공부해야하지만요ㅠㅠ


잘못된 내용이 있다면 언제든지 댓글이나 메일로 알려주시면 감사하겠습니다.

이 포스팅이 도움이 되었다면 공감 부탁드립니다.

궁금한 점은 언제든지 댓글 남겨주시면 답변해드리겠습니다:D