본문 바로가기
카테고리 없음

[Firebase] Realtime Database Installation

by KEI NETWORK 2019. 10. 29.
728x90

Firebase에 앱 연결

아직 추가하지 않았다면 Android 프로젝트에 Firebase를 추가합니다.

프로젝트 수준 build.gradle 파일의 buildscript  allprojects 섹션에 Google의 Maven 저장소가 포함되어야 합니다.

앱에 실시간 데이터베이스 추가

앱 수준 build.gradle 파일에 실시간 데이터베이스에 대한 종속 항목을 추가합니다.

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

 

실시간 데이터베이스 규칙 구성

실시간 데이터베이스가 제공하는 선언적 규칙 언어로 데이터의 구조, 색인 생성 방법, 데이터를 읽고 쓸 수 있는 조건을 정의할 수 있습니다.

기본적으로 데이터베이스에 대한 읽기 및 쓰기 액세스는 인증된 사용자만 데이터를 읽거나 쓸 수 있도록 제한되어 있습니다. 공개 액세스 규칙을 구성하면 인증을 설정하지 않고 시작할 수 있습니다. 다만 이렇게 하면 앱을 사용하지 않는 사람을 포함하여 모두에게 데이터베이스가 공개되므로 인증을 설정할 때 데이터베이스를 다시 제한해야 합니다.

데이터베이스에 쓰기

getInstance()를 사용하여 데이터베이스의 인스턴스를 검색하고, 쓰려는 위치를 참조합니다.

// Write a message to the database
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference("message");

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

MainActivity.java

 

이 방법으로 자바 객체를 포함하여 다양한 데이터 유형을 데이터베이스에 저장할 수 있습니다. 객체를 저장하면 getter의 응답이 이 위치의 하위 요소로 저장됩니다.

데이터베이스에서 읽기

실시간으로 앱 데이터를 업데이트하려면 방금 만든 참조에 ValueEventListener를 추가해야 합니다.

이 클래스의 onDataChange() 메서드는 리스너가 연결될 때 한 번 호출된 후 하위를 포함한 데이터가 변경될 때마다 다시 호출됩니다.

// Read from the database
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());
   
}
});

MainActivity.java

 

선택사항: ProGuard 구성

앱에서 ProGuard와 함께 Firebase 실시간 데이터베이스를 사용하는 경우 난독화 후에 모델 객체가 직렬화 및 역직렬화되는 방법을 고려해야 합니다. <DataSnapshot.getValue(Class) 또는 DatabaseReference.setValue(Object)를 사용하여 데이터를 읽고 쓰는 경우 proguard-rules.pro 파일에 다음과 같이 규칙을 추가해야 합니다.

    # Add this global rule
   
-keepattributes Signature

   
# This rule will properly ProGuard all the model classes in
   
# the package com.yourcompany.models. Modify to fit the structure
   
# of your app.
   
-keepclassmembers class com.yourcompany.models.** {
     
*;
   
}

 

실행 준비

앱을 실행하기 전에 우선 출시 체크리스트를 확인하여 앱의 준비 상태를 점검하세요.

728x90

댓글