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!");
이 방법으로 자바 객체를 포함하여 다양한 데이터 유형을 데이터베이스에 저장할 수 있습니다. 객체를 저장하면 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());
}
});
선택사항: 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.** {
*;
}
실행 준비
앱을 실행하기 전에 우선 출시 체크리스트를 확인하여 앱의 준비 상태를 점검하세요.
댓글