Android용 Firebase 이해

Firebase를 사용하여 Android 프로젝트를 개발하다 보면 낯설거나 Firebase에만 해당하는 개념을 만날 수도 있습니다. 이 페이지에서는 이러한 질문에 답변하거나 자세한 내용을 알아보는 데 유용한 리소스를 안내합니다.

이 페이지에서 다루지 않은 주제와 관련해 궁금한 점이 있으면 언제든지 온라인 커뮤니티를 방문하시기 바랍니다. 이 페이지에는 정기적으로 새로운 주제가 업데이트되므로 관심 있는 주제가 추가되었는지 추후에 다시 확인해 보세요.

Android 스튜디오용 Firebase Assistant 플러그인

Firebase Assistant는 Firebase 프로젝트에 Android 앱을 등록하고 필요한 Firebase 구성 파일, 플러그인, 종속 항목을 Android 프로젝트에 추가하는 Android 스튜디오 플러그인으로, 이 모든 작업을 Android 스튜디오 안에서 할 수 있습니다.

Firebase Assistant를 사용하려면 Android 시작하기 페이지의 안내에 따르세요. Android 스튜디오와 Firebase Assistant 모두 최신 버전을 사용 중인지 확인합니다(파일 > 업데이트 확인으로 이동).

앱에 추가할 특정 Firebase 제품을 선택하면 Firebase Assistant가 app/build.gradle 파일에 필요한 종속 항목을 자동으로 선언합니다. 그러나 Firebase Assistant의 현재 기능 범위를 벗어나는 Firebase 기능을 사용하려면 이러한 종속 항목을 수동으로 변경해야 할 수 있습니다.

  • Firebase Android BoM을 사용하려면 모듈 (앱 수준) Gradle 파일(일반적으로 app/build.gradle)에서 종속 항목을 업데이트하여 BoM 플랫폼을 가져옵니다. 각 Firebase 라이브러리 종속 항목 줄에서도 버전을 삭제해야 합니다.

  • Kotlin 확장 프로그램 라이브러리를 사용하려면 모듈(앱 수준) Gradle 파일(일반적으로 app/build.gradle)에 추가된 종속 항목 줄을 수정하여 Firebase 라이브러리의 ktx 버전을 대신 사용합니다.

Google 서비스 - 플러그인 및 구성 파일

Firebase를 Android 프로젝트에 추가하는 과정에서 프로젝트에 google-services 플러그인과 google-services.json 구성 파일을 추가해야 합니다.

Firebase Console, Management REST API 또는 Firebase CLI를 통해 Firebase를 Android 프로젝트에 추가하는 경우 플러그인과 구성 파일을 수동으로 프로젝트에 추가해야 합니다. 그러나 Firebase Assistant를 사용하면 이러한 태스크는 설정 과정에서 자동으로 수행됩니다.

Google 서비스 플러그인과 구성 파일의 연동 방식을 알아보려면 Android 문서를 참조하세요.

Firebase Android BoM(Bill of Materials)

Firebase Android BoM(Bill of Materials)을 사용하면 BoM 버전 하나만 지정하여 모든 Firebase 라이브러리 버전을 관리할 수 있습니다.

앱에서 Firebase BoM을 사용하면 BoM에서 BoM 버전에 매핑된 개별 라이브러리 버전을 자동으로 가져옵니다. 모든 개별 라이브러리 버전은 호환됩니다. 앱에서 BoM 버전을 업데이트하면 앱에서 사용하는 모든 Firebase 라이브러리가 해당 BoM 버전에 매핑된 버전으로 업데이트됩니다.

특정 BoM 버전에 매핑된 Firebase 라이브러리 버전을 알아보려면 해당 BoM 버전의 출시 노트를 확인하세요. 한 BoM 버전에 매핑된 라이브러리 버전을 다른 BoM 버전과 비교해야 하는 경우에는 아래 비교 위젯을 사용합니다.

Gradle의 BoM 플랫폼 지원에 대해 자세히 알아보세요.

다음은 Firebase Android BoM모듈(앱 수준) Gradle 파일(일반적으로 app/build.gradle)에서 종속 항목을 선언하는 방법입니다. BoM을 사용할 경우 개별 라이브러리 버전을 종속 항목 줄에 지정하지 않습니다.

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

  // Declare the dependencies for the desired Firebase products without specifying versions
  // For example, declare the dependencies for Firebase Authentication and Cloud Firestore
  implementation 'com.google.firebase:firebase-auth'
  implementation 'com.google.firebase:firebase-firestore'
}

다음은 Firebase Android BoM 사용과 관련하여 자주 묻는 질문(FAQ)입니다.

Firebase BoM 버전 비교

Kotlin 확장 프로그램(KTX) 라이브러리 모듈

Firebase Kotlin 확장 프로그램(KTX) 라이브러리 모듈은 기본 Firebase 라이브러리 모듈과 함께 제공되는 작은 보조 라이브러리로, 이를 사용하여 자연스럽고 관용적인 Kotlin 코드를 작성할 수 있습니다.

앱에서 KTX 라이브러리 모듈을 사용하려면 -ktx 서픽스가 포함되도록 종속 항목을 변경합니다. 각 KTX 모듈에는 자동으로 기본 라이브러리 모듈에 대한 종속 항목이 있으므로 앱에 두 종속 항목 모두를 포함할 필요가 없습니다.

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

  // Declare the main module
  implementation 'com.google.firebase:firebase-analytics'

  // Declare the KTX module instead (which automatically has a dependency on the main module)
  implementation 'com.google.firebase:firebase-analytics-ktx'
}

각 KTX 모듈에서 기본 모듈의 구문 확장 프로그램을 다양하게 제공합니다. 예를 들어 Analytics KTX 모듈을 사용하면 더 간단하게 이벤트를 로깅할 수 있습니다.

이전(기본 모듈 사용)

val analytics = FirebaseAnalytics.getInstance();
val bundle = Bundle();
bundle.putString(FirebaseAnalytics.Param.ITEM_ID, id);
bundle.putString(FirebaseAnalytics.Param.ITEM_NAME, name);
bundle.putString(FirebaseAnalytics.Param.CONTENT_TYPE, "image");
analytics.logEvent(FirebaseAnalytics.Event.SELECT_ITEM, bundle);

이후(대신 KTX 모듈 사용)

firebaseAnalytics.logEvent(FirebaseAnalytics.Event.SELECT_ITEM) {
    param(FirebaseAnalytics.Param.ITEM_ID, id)
    param(FirebaseAnalytics.Param.ITEM_NAME, name)
    param(FirebaseAnalytics.Param.CONTENT_TYPE, "image")
}

모든 Firebase 제품은 Firebase MLApp Indexing을 제외한 KTX 모듈을 제공합니다.

아직 확인하지 않았으면 KTX 모듈의 API 참조 문서를 확인하세요.

기능 모듈 및 Play Feature Delivery

2021년 5월(Firebase BoM v28.0.0)부터 Firebase Android SDK를 기본 애플리케이션 모듈과 별도로 설치되는 동적 기능 모듈에서 사용할 수 있습니다.

동적 기능 모듈 지원을 사용 설정하려면 다음 종속 항목을 기본 모듈의 build.gradle 파일에 추가합니다.

dependencies {
  implementation 'com.google.firebase:firebase-dynamic-module-support:16.0.0-beta03'
}

이제 동적 기능 모듈 지원을 추가했으므로 Firebase BoM 유무와 관계없이 Firebase SDK 종속 항목을 앱의 기능 모듈에 추가하여 평소처럼 사용할 수 있습니다.

예를 들어 애플리케이션에서 Realtime Database를 사용하여 특정 실시간 기능을 구동하는 경우 기본 모듈이 아닌 기능 모듈의 build.gradlefirebase-database 종속 항목을 추가할 수 있습니다. 이렇게 하면 대부분의 사용자에 대해 다운로드 크기가 줄어듭니다.

기능 모듈에서 Firebase SDK를 사용할 때는 다음 사항에 유의하세요.

  • Analytics first_open 이벤트를 사용하는 Dynamic Links 또는 Firebase In-App Messaging과 같은 제품을 동적 기능 모듈에서 사용할 경우 이 이벤트를 놓칠 수 있습니다.

  • Cloud FirestoreAuthentication을 함께 사용할 경우 항상 같은 모듈에 둘 다 포함해야 합니다. 같은 모듈에 포함할 수 없으면 Cloud Firestore 이전에 Authentication이 로드되어야 합니다. 그렇지 않으면 일부 Cloud Firestore 작업의 인증 상태가 잘못될 수 있습니다.

  • firebase-crashlytics-ndk를 동적 기능 모듈의 종속 항목으로 사용할 경우 Crashlytics NDK 문서의 설명대로 앱의 build.gradle 파일에서 unstrippedNativeLibsDir 속성을 설정해야 합니다.

기능 모듈 및 Play Feature Delivery에 관한 자세한 내용은 Play Feature Delivery 개요를 참조하세요.

Google 서비스 Gradle 플러그인, Google Play 서비스, Google Play 스토어 비교

Google, Firebase, Android 생태계에는 이름 지정 규칙이 유사한 여러 제품이 있습니다. 다음은 각 제품에 대한 간략한 설명입니다.

Google 서비스 Gradle 플러그인
앱에서 Firebase 및 Google API에 액세스할 수 있는 올바른 구성을 보장하기 위해 빌드 시 실행되는 Gradle 플러그인(com.google.gms.google-services)입니다.
이름과 달리 이 플러그인은 Google Play 서비스(다음 항목 참조)와 관련이 없으며 런타임 중에 앱 기능에 영향을 미치지 않습니다.
이 플러그인은 Firebase를 설정하는 과정에서 사용자가 앱에 추가하는 google-services.json 파일도 처리합니다. Google 서비스 Gradle 플러그인에 대해 자세히 알아보세요.
Google Play 서비스
Android 기기에서 실행되는 보이지 않는 백그라운드 서비스로서 기기의 앱에 일반적인 여러 Google API(예: Google 지도 및 Google 로그인)를 제공합니다.
일반적인 API를 단일 서비스로 중앙화하면 다른 앱의 크기가 감소하며 기기에서 OS 업데이트 없이 자동 보안 업데이트 및 기능 개선사항을 받을 수 있습니다. Google Play 서비스에 대해 자세히 알아보세요.
Google Play 스토어
Android 기기에 앱, 영화, 도서 등을 다운로드할 수 있는 스토어입니다.
개발자가 Google Play Console을 통해 앱의 배포, 출시 등을 관리할 수 있습니다. 기기에 Google Play 스토어가 있다면 Google Play 서비스도 실행 중입니다(이전 항목 참조). 개발자용 Google Play 스토어에 대해 자세히 알아보세요.
Google Play 게임즈 서비스
모바일 게임 개발자를 위한 API 집합입니다.
Google Play 게임즈 서비스Firebase를 Google Play 게임즈 서비스 프로젝트와 통합하는 방법에 대해 자세히 알아보세요.

Firebase Android SDK용 오픈소스 리소스

Firebase는 오픈소스 개발을 지원하며 커뮤니티 참여와 의견 제공을 권장합니다.

Firebase Android SDK

대부분의 Firebase Android SDK는 공개 Firebase GitHub 저장소에서 오픈소스 라이브러리로 개발됩니다. Google은 비공개로 개발된 나머지 Firebase 라이브러리를 GitHub에서 공개하기 위해 노력하고 있습니다.

빠른 시작 샘플

Firebase는 Android용 Firebase API 대부분에 대한 빠른 시작 샘플 모음을 유지관리합니다. 공개 Firebase GitHub 빠른 시작 저장소에서 이러한 빠른 시작을 찾아보세요.

각 빠른 시작을 Android 스튜디오 프로젝트로 연 다음 휴대기기 또는 가상 기기(AVD)에서 실행할 수 있습니다. 또는 Firebase SDK를 사용하기 위한 예시 코드로 이 빠른 시작을 사용할 수 있습니다.

관심 있는 다른 주제