본문 바로가기
안드로이드 웹앱 콘테츠 개발자 양성(국비지원)/Firebase

Android Studio(기능) Firebase - Realtime Database

by 차누감 2019. 10. 23.

앱 개발자가 DB까지 하려면 여러가지 언어를 배워야하고, 일일이 앱 개발자가 하기가 힘들다.

이런 것을 구글에서 도와주는 사이트가 있다!

https://firebase.google.com

 

Firebase

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

firebase.google.com

우선 실시간 데이터베이스를 이용해보겠다.

Android에 시작하기 [새탭으로 열기] 누르고 설명보고 해보자.
새탭으로 필요한 것을 열면서 순차적으로 따라하자.
긴 프로젝트 이름이 안되서 그냥 Fire로 했다. (왜 안됐는지는 모름...)
다운 받은 파일을 app폴더에 붙여넣기
추가된 모습
문서 -> Firebase 시작하기 -> 앱에 Firevbase 추가 -> Android에 코드가 있다.

implementation 'com.google.firebase:firebase-core:17.0.0'

를 dependencies { ) 안에 써야 한다. (아래 사진 주황 네모)

 

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

 dependencies { )  써야 한다. (위 사진 주황 화살표)

문서 -> 실시간 데이터베이스-> Android -> 시작하기에 코드가 있다.

implementation 'com.google.firebase:firebase-database:19.1.0'

 dependencies { ) 안에 써야 한다. (아래 사진 주황 네모)

추가를 다했으면 sync Now를 하자.
동기화를 했다면 다음을 누르자.
왼쪽 목록에서 Database 클릭
데이터베이스를 만들자.
true로 바꾸고 게시를 누르자.

이제 앱으로 DB에 작성해보자.

앱 화면 구성을 먼저 하자.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="16dp"
    tools:context=".MainActivity">
 
    <Button
        android:id="@+id/btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="save"
        android:layout_alignParentRight="true"
        android:onClick="clickSave"/>
 
    <EditText
        android:id="@+id/et"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_toLeftOf="@+id/btn"
        android:hint="input text"
        android:inputType="text"/>
 
    <TextView
        android:id="@+id/tv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="8dp"
        android:textStyle="bold"
        android:layout_below="@+id/et"/>
 
</RelativeLayout>
 
 
 

앱에서 쓴 글이 Database에 실시간으로 올라가는 것을 확인할 수 있다.

1) 이제 데이터를 불러오자.

db에 있는 값이 앱화면 TextView에 나오는 것을 알 수 있다.

여기서 문제는 쓰는 것이 계속 누적이 안되고, 기존 데이터가 없어지고 덮어쓰기 형식으로 된다.

노드가 없어서... 이제 누적되어 저장되게 해보자.  [ 1) 내용들 주석 ]

 

아래 3줄은 남겨나야함. 주석 x

String data= et.getText().toString();
FirebaseDatabase firebaseDatabase= FirebaseDatabase.getInstance();
DatabaseReference rootRef= firebaseDatabase.getReference();

 

2) 누적 값 저장

 

 

3) 앞에 식별자(노드 이름)가 누군지 몰라서 식별자를 지정하자. (아래 코드에서는 data로 함.)

 

[ 2) 내용들 주석 ]

 

4) 하나의 노드(member)에  여러개 값

5) person 노드를 만들고

값을 받는 클래스를 따로 만들어서 데이터를 DB에 저장 시킬 수도 있다.

 

댓글