Firebase Summit에서 발표된 모든 내용을 살펴보고 Firebase로 앱을 빠르게 개발하고 안심하고 앱을 실행하는 방법을 알아보세요. 자세히 알아보기

Firebase에 앱 연결, Firebase에 앱 연결

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

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

데이터베이스 생성

  1. Firebase 콘솔실시간 데이터베이스 섹션으로 이동합니다. 기존 Firebase 프로젝트를 선택하라는 메시지가 표시됩니다. 데이터베이스 생성 워크플로를 따릅니다.

  2. Firebase 보안 규칙의 시작 모드를 선택합니다.

    시험 모드

    모바일 및 웹 클라이언트 라이브러리를 시작하는 데 적합하지만 누구나 데이터를 읽고 덮어쓸 수 있습니다. 테스트 후 Firebase 실시간 데이터베이스 규칙 이해 섹션을 검토하세요.

    웹, Apple 또는 Android SDK를 시작하려면 testmode를 선택하십시오.

    잠금 모드

    모바일 및 웹 클라이언트의 모든 읽기 및 쓰기를 거부합니다. 인증된 애플리케이션 서버는 여전히 데이터베이스에 액세스할 수 있습니다.

  3. 데이터베이스 위치를 선택합니다.

    데이터베이스 위치에 따라 새 데이터베이스의 URL은 다음 형식 중 하나가 됩니다.

    • DATABASE_NAME .firebaseio.com ( us-central1 데이터베이스용)

    • DATABASE_NAME . REGION .firebasedatabase.app (다른 모든 위치의 데이터베이스용)

  4. 완료 를 클릭합니다.

실시간 데이터베이스를 활성화하면 Cloud API Manager 에서 API도 활성화됩니다.

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

모듈(앱 수준) Gradle 파일 (일반적으로 <project>/<app-module>/build.gradle )에서 실시간 데이터베이스 Android 라이브러리에 대한 종속성을 추가합니다. Firebase Android BoM 을 사용하여 라이브러리 버전 관리를 제어하는 ​​것이 좋습니다.

Java

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:31.1.0')

    // Add the dependency for the Realtime Database library
    // When using the BoM, you don't specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-database'
}

Firebase Android BoM 을 사용하면 앱에서 항상 호환되는 Firebase Android 라이브러리 버전을 사용합니다.

(또는) BoM을 사용 하지 않고 Firebase 라이브러리 종속성을 추가합니다.

Firebase BoM을 사용하지 않기로 선택한 경우 종속성 줄에 각 Firebase 라이브러리 버전을 지정해야 합니다.

앱에서 여러 Firebase 라이브러리를 사용하는 경우 모든 버전이 호환되도록 BoM을 사용하여 라이브러리 버전을 관리하는 것이 좋습니다.

dependencies {
    // Add the dependency for the Realtime Database library
    // When NOT using the BoM, you must specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-database:20.1.0'
}

Kotlin+KTX

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:31.1.0')

    // Add the dependency for the Realtime Database library
    // When using the BoM, you don't specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-database-ktx'
}

Firebase Android BoM 을 사용하면 앱에서 항상 호환되는 Firebase Android 라이브러리 버전을 사용합니다.

(또는) BoM을 사용 하지 않고 Firebase 라이브러리 종속성을 추가합니다.

Firebase BoM을 사용하지 않기로 선택한 경우 종속성 줄에 각 Firebase 라이브러리 버전을 지정해야 합니다.

앱에서 여러 Firebase 라이브러리를 사용하는 경우 모든 버전이 호환되도록 BoM을 사용하여 라이브러리 버전을 관리하는 것이 좋습니다.

dependencies {
    // Add the dependency for the Realtime Database library
    // When NOT using the BoM, you must specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-database-ktx:20.1.0'
}

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

실시간 데이터베이스는 데이터 구조화 방법, 인덱싱 방법, 데이터를 읽고 쓸 수 있는 시기를 정의할 수 있는 선언적 규칙 언어를 제공합니다.

데이터베이스에 쓰기

getInstance() 를 사용하여 데이터베이스의 인스턴스를 검색하고 쓰고자 하는 위치를 참조하십시오.

Java

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

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

Kotlin+KTX

// Write a message to the database
val database = Firebase.database
val myRef = database.getReference("message")

myRef.setValue("Hello, World!")

Java 개체를 포함하여 이러한 방식으로 데이터 유형 범위를 데이터베이스에 저장할 수 있습니다. 객체를 저장하면 모든 getter의 응답이 이 위치의 자식으로 저장됩니다.

데이터베이스에서 읽기

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

이 클래스의 onDataChange() 메서드는 리스너가 연결될 때 한 번 트리거되고 자식을 포함하여 데이터가 변경될 때마다 다시 트리거됩니다.

Java

// 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());
    }
});

Kotlin+KTX

// Read from the database
myRef.addValueEventListener(object : ValueEventListener {
    override fun onDataChange(dataSnapshot: DataSnapshot) {
        // This method is called once with the initial value and again
        // whenever data at this location is updated.
        val value = dataSnapshot.getValue<String>()
        Log.d(TAG, "Value is: $value")
    }

    override fun onCancelled(error: DatabaseError) {
        // 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 this rule to fit the structure of your app.
    -keepclassmembers class com.yourcompany.models.** {
      *;
    }

ProGuard와 관련된 질문이나 문제에 대한 도움을 받으려면 Guardsquare 커뮤니티 포럼 을 방문하여 전문가의 도움을 받으십시오.

출시 준비

앱을 출시하기 전에 출시 체크리스트 를 살펴보고 앱을 사용할 준비가 되었는지 확인하는 것이 좋습니다!

앱만 데이터베이스에 액세스할 수 있도록 하려면 앱 검사 를 활성화해야 합니다.

다음 단계

,

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

데이터베이스 생성

  1. Firebase 콘솔실시간 데이터베이스 섹션으로 이동합니다. 기존 Firebase 프로젝트를 선택하라는 메시지가 표시됩니다. 데이터베이스 생성 워크플로를 따릅니다.

  2. Firebase 보안 규칙의 시작 모드를 선택합니다.

    시험 모드

    모바일 및 웹 클라이언트 라이브러리를 시작하는 데 적합하지만 누구나 데이터를 읽고 덮어쓸 수 있습니다. 테스트 후 Firebase 실시간 데이터베이스 규칙 이해 섹션을 검토하세요.

    웹, Apple 또는 Android SDK를 시작하려면 testmode를 선택하십시오.

    잠금 모드

    모바일 및 웹 클라이언트의 모든 읽기 및 쓰기를 거부합니다. 인증된 애플리케이션 서버는 여전히 데이터베이스에 액세스할 수 있습니다.

  3. 데이터베이스 위치를 선택합니다.

    데이터베이스 위치에 따라 새 데이터베이스의 URL은 다음 형식 중 하나가 됩니다.

    • DATABASE_NAME .firebaseio.com ( us-central1 데이터베이스용)

    • DATABASE_NAME . REGION .firebasedatabase.app (다른 모든 위치의 데이터베이스용)

  4. 완료 를 클릭합니다.

실시간 데이터베이스를 활성화하면 Cloud API Manager 에서 API도 활성화됩니다.

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

모듈(앱 수준) Gradle 파일 (일반적으로 <project>/<app-module>/build.gradle )에서 실시간 데이터베이스 Android 라이브러리에 대한 종속성을 추가합니다. Firebase Android BoM 을 사용하여 라이브러리 버전 관리를 제어하는 ​​것이 좋습니다.

Java

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:31.1.0')

    // Add the dependency for the Realtime Database library
    // When using the BoM, you don't specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-database'
}

Firebase Android BoM 을 사용하면 앱에서 항상 호환되는 Firebase Android 라이브러리 버전을 사용합니다.

(또는) BoM을 사용 하지 않고 Firebase 라이브러리 종속성을 추가합니다.

Firebase BoM을 사용하지 않기로 선택한 경우 종속성 줄에 각 Firebase 라이브러리 버전을 지정해야 합니다.

앱에서 여러 Firebase 라이브러리를 사용하는 경우 모든 버전이 호환되도록 BoM을 사용하여 라이브러리 버전을 관리하는 것이 좋습니다.

dependencies {
    // Add the dependency for the Realtime Database library
    // When NOT using the BoM, you must specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-database:20.1.0'
}

Kotlin+KTX

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:31.1.0')

    // Add the dependency for the Realtime Database library
    // When using the BoM, you don't specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-database-ktx'
}

Firebase Android BoM 을 사용하면 앱에서 항상 호환되는 Firebase Android 라이브러리 버전을 사용합니다.

(또는) BoM을 사용 하지 않고 Firebase 라이브러리 종속성을 추가합니다.

Firebase BoM을 사용하지 않기로 선택한 경우 종속성 줄에 각 Firebase 라이브러리 버전을 지정해야 합니다.

앱에서 여러 Firebase 라이브러리를 사용하는 경우 모든 버전이 호환되도록 BoM을 사용하여 라이브러리 버전을 관리하는 것이 좋습니다.

dependencies {
    // Add the dependency for the Realtime Database library
    // When NOT using the BoM, you must specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-database-ktx:20.1.0'
}

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

실시간 데이터베이스는 데이터 구조화 방법, 인덱싱 방법, 데이터를 읽고 쓸 수 있는 시기를 정의할 수 있는 선언적 규칙 언어를 제공합니다.

데이터베이스에 쓰기

getInstance() 를 사용하여 데이터베이스의 인스턴스를 검색하고 쓰고자 하는 위치를 참조하십시오.

Java

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

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

Kotlin+KTX

// Write a message to the database
val database = Firebase.database
val myRef = database.getReference("message")

myRef.setValue("Hello, World!")

Java 개체를 포함하여 이러한 방식으로 데이터 유형 범위를 데이터베이스에 저장할 수 있습니다. 객체를 저장하면 모든 getter의 응답이 이 위치의 자식으로 저장됩니다.

데이터베이스에서 읽기

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

이 클래스의 onDataChange() 메서드는 리스너가 연결될 때 한 번 트리거되고 자식을 포함하여 데이터가 변경될 때마다 다시 트리거됩니다.

Java

// 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());
    }
});

Kotlin+KTX

// Read from the database
myRef.addValueEventListener(object : ValueEventListener {
    override fun onDataChange(dataSnapshot: DataSnapshot) {
        // This method is called once with the initial value and again
        // whenever data at this location is updated.
        val value = dataSnapshot.getValue<String>()
        Log.d(TAG, "Value is: $value")
    }

    override fun onCancelled(error: DatabaseError) {
        // 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 this rule to fit the structure of your app.
    -keepclassmembers class com.yourcompany.models.** {
      *;
    }

ProGuard와 관련된 질문이나 문제에 대한 도움을 받으려면 Guardsquare 커뮤니티 포럼 을 방문하여 전문가의 도움을 받으십시오.

출시 준비

앱을 출시하기 전에 출시 체크리스트 를 살펴보고 앱을 사용할 준비가 되었는지 확인하는 것이 좋습니다!

앱만 데이터베이스에 액세스할 수 있도록 하려면 앱 검사 를 활성화해야 합니다.

다음 단계