간단한 채팅 앱 만들기 #1 - Firebase

FireBase

 

Firebase

Firebase는 고품질 앱을 빠르게 개발하고 비즈니스를 성장시키는 데 도움이 되는 Google의 모바일 플랫폼입니다.

firebase.google.com

모바일 서버를 개발하기 위해 DB, 스토리지, API 등 각자가 개발을 해야했다.
매번 앱 개발 할때마다 이러한 반복적인 작업을 하는 것은 심각한 시간 낭비를 야기한다.

하지만 FireBase는 이를 프로젝트 구축 시 '알아서' 만들어 준다.
조금 더 간단한 개발을 위해 이 FireBase를 선택했다.

먼저 구글 로그인을 진행하고, 새 프로젝트를 미리 만들어준다.

 

 

만들고 나면 우리의 android studio 프로젝트 gradle.build(모듈)의 dependencies에 아래 내용을 추가한다.

implementation platform('com.google.firebase:firebase-bom:26.3.0')
implementation 'com.google.firebase:firebase-database'

그리고, 바깥에 다음을 추가한다.

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

그 후 콘솔 사이트에서 프로젝트 설정에 들어가 앱 추가를 진행한다.
패키지 이름을 입력하라고 나오는데, 우리의 android studio 프로젝트의 패키지를 입력하면 된다.
그 후 google-services.json을 줄 것인데, 이를 로컬 프로젝트 app 아래에 넣어준다.
그리고 realtime database 규칙을 read, write를 true로 바꾸어 준다.

여기까지 로컬 프로젝트에서 개발을 진행하기 위한 밑 작업이 끝났다.

DataBase

realtime database에 들어가보자.

 

 

이제 채팅을 통한 데이터들이 위 이미지에 최상위 계층부터 하여금 데이터가 쌓일 것이다.

그렇다면, 데이터를 한번 전송해보자.
firebase document의 예제를 보면 데이터 베이스에 쓰는 코드는 다음과 같다.

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

myRef.setValue("Hello, World!");

이를 MainActivity에 올려서 실행하보자. 그러면 다음과 같은 화면으로 갱신된다.

 

 

읽어오는 것도 해보자.

myRef.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        // This method is called once with the initial value and again
        // whenever data at this location is updated.
        String value = dataSnapshot.getValue(String.class);
        Log.d(TAG, "Value is: " + value);
    }

    @Override
    public void onCancelled(DatabaseError error) {
        // Failed to read value
        Log.w(TAG, "Failed to read value.", error.toException());
    }
});

onDataChange 메소드는 저장소가 갱신될때마다 이 메소드가 호출되어 데이터를 읽어온다고 한다.
그렇다면 위 데이터를 쓰고나면 이 메소드가 데이터를 불러와서 화면을 갱신해주면 되겠다.

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기