Firebase를 사용하여 Android 프로젝트를 개발하다 보면 익숙하지 않거나 Firebase에만 해당하는 개념을 발견할 수 있습니다. 이 페이지는 이러한 질문에 답하거나 자세한 내용을 알아볼 수 있는 리소스를 안내하는 것을 목표로 합니다.
이 페이지에서 다루지 않은 주제에 대해 질문이 있는 경우 온라인 커뮤니티 중 하나를 방문하십시오. 또한 주기적으로 새로운 주제로 이 페이지를 업데이트할 예정이므로 배우고 싶은 주제가 추가되었는지 다시 확인하십시오!
Android Studio용 Firebase Assistant 플러그인
Firebase Assistant는 Android 앱을 Firebase 프로젝트에 등록하고 필요한 Firebase 구성 파일, 플러그인 및 종속 항목을 Android 프로젝트에 추가하는 Android Studio 플러그인입니다. 모두 Android Studio 내에서 가능합니다!
Firebase Assistant를 사용하려면 Android 시작하기 페이지 의 지침을 따르세요. Android Studio와 Firebase Assistant의 최신 버전을 사용하고 있는지 확인하세요( 파일 > 업데이트 확인으로 이동).
앱에 추가할 특정 Firebase 제품을 선택하면 Firebase Assistant가 자동으로 app/build.gradle
파일에 필요한 종속 항목을 선언합니다. 그러나 Firebase Assistant의 현재 기능을 넘어서는 Firebase 기능을 사용하려면 이러한 종속 항목을 수동으로 변경해야 할 수 있습니다.
Firebase Android BoM 을 사용하려면 모듈(앱 수준) Gradle 파일 (일반적으로
app/build.gradle
)의 종속성을 업데이트하여 BoM 플랫폼을 가져옵니다. 또한 각 Firebase 라이브러리 종속성 줄에서 버전을 제거해야 합니다.Kotlin 확장 프로그램 라이브러리 를 사용하려면 Firebase 라이브러리의
ktx
버전을 대신 사용하도록 모듈(앱 수준) Gradle 파일 (일반적으로app/build.gradle
)에 추가된 종속 항목 줄을 수정하세요.
Google 서비스 — 플러그인 및 구성 파일
Android 프로젝트에 Firebase를 추가하는 과정에서 google-services
플러그인과
구성 파일을 프로젝트에 추가해야 합니다.
Firebase 콘솔 , 관리 REST API 또는 Firebase CLI 를 통해 Android 프로젝트에 Firebase를 추가하는 경우 플러그인 및 구성 파일을 프로젝트에 수동으로 추가해야 합니다. 그러나 Firebase Assistant 를 사용하는 경우 설정 중에 이러한 작업이 자동으로 수행됩니다.
Google 서비스 플러그인과 구성 파일이 함께 작동하는 방식에 대해 알아보려면 Android 설명서 를 참조하세요.
Firebase Android BoM(재료 명세서)
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:31.2.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 사용에 대해 자주 묻는 질문입니다.
BoM에 지정된 라이브러리 버전을 재정의하는 방법은 다음과 같습니다.
BoM 플랫폼을 가져오기 위해 줄을 유지합니다.
라이브러리의 종속성 줄에서 원하는 라이브러리 버전을 지정합니다. 예를 들어 BoM에 지정된 버전에 관계없이 v18.0.0의 App Indexing을 사용하고 싶지만 인증 및 Cloud Firestore에는 BoM의 버전을 사용하려는 경우 종속성을 선언하는 방법은 다음과 같습니다.
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:31.2.0') // Declare the dependency for the App Indexing library and specify a version // This specified library version overrides the version designated in the BoM. implementation 'com.google.firebase:firebase-appindexing:18.0.0' // Declare the dependencies for the other Firebase libraries without specifying versions // These libraries will use the versions designated in the BoM. implementation 'com.google.firebase:firebase-auth' implementation 'com.google.firebase:firebase-firestore' }
아니요. 실제로 앱에서 Firebase 라이브러리를 추가하고 사용하려면 모듈(앱 수준) Gradle 파일 (일반적으로 app/build.gradle
)에서 각 라이브러리를 별도의 종속성 줄로 선언해야 합니다.
BoM을 사용하면 앱의 모든 Firebase 라이브러리 버전 이 호환되지만 BoM은 실제로 해당 Firebase 라이브러리를 앱에 추가 하지 않습니다.
예! 특정 Firebase 라이브러리 종속 항목 줄을 선언할 때 다음과 같이 KTX 라이브러리 이름만 사용하세요.
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:31.2.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-ktx' implementation 'com.google.firebase:firebase-firestore-ktx' }
아니요. Firebase Android BoM은 Firebase 라이브러리의 라이브러리 버전만 관리합니다. 유일한 예외는 Firebase 앱에서 일반적으로 사용되는 Google 모바일 광고 SDK를 포함하는 것입니다.
각 Firebase 라이브러리는 독립적으로 버전이 지정되지만 각 라이브러리의 최신 릴리스가 다른 라이브러리와 호환되도록 함께 빌드됩니다.
BoM을 사용하여 앱의 Firebase 라이브러리 버전을 관리하면 다른 Firebase 라이브러리와 호환되는 Firebase 라이브러리 버전을 추적할 필요가 없습니다.
지금 앱에서 Firebase 라이브러리를 하나만 사용하더라도 다른 Firebase 라이브러리를 언제 사용할지 모르기 때문에 BoM을 사용하는 것이 좋습니다.
예, BoM을 계속 사용할 수 있습니다! Gradle 5.0 이상에서는 BoM 지원이 자동으로 활성화됩니다. 그러나 이전 버전의 Gradle에서는 BoM 기능을 활성화하고 BoM 을 약간 다르게 가져오기만 하면 됩니다.
settings.gradle
파일에enableFeaturePreview('IMPROVED_POM_SUPPORT')
를 추가합니다.모듈(앱 수준) Gradle 파일 (일반적으로
app/build.gradle
)에 다음과 같이 일반 라이브러리처럼 BoM을 가져옵니다(platform
수정자 없음).dependencies { // Import the Firebase BoM implementation 'com.google.firebase:firebase-bom:31.2.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' }
GitHub의 Firebase Android SDK 저장소를 방문하세요.
Firebase BoM 버전 비교
Kotlin 확장 프로그램(KTX) 라이브러리
Firebase Kotlin 확장 프로그램(KTX) 라이브러리는 아름답고 관용적인 Kotlin 코드를 작성할 수 있게 해주는 기본 Firebase SDK의 작은 동반자입니다.
앱에서 KTX 라이브러리를 사용하려면 -ktx
접미사를 포함하도록 종속성을 변경하세요. 각 KTX 라이브러리에는 자동으로 기본 라이브러리에 대한 종속성이 있으므로 앱에 두 종속성을 모두 포함할 필요가 없습니다.
dependencies { // Import the BoM for the Firebase platform (learn more) implementation platform('com.google.firebase:firebase-bom:31.2.0')// Declare the base library implementation 'com.google.firebase:firebase-analytics'// Declare the KTX library instead (which automatically has a dependency on the base library) 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 ML 및 App Indexing을 제외한 모든 Firebase 제품은 KTX 라이브러리 를 제공합니다.
아직 확인하지 않았다면 KTX 라이브러리에 대한 API 참조 문서 를 확인하세요.
기능 모듈 및 Play 기능 제공
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 SDK 종속 항목(Firebase BoM 포함 또는 제외)을 추가하고 평소처럼 사용할 수 있습니다.
예를 들어 애플리케이션에서 특정 실시간 기능을 지원하기 위해 실시간 데이터베이스를 사용하는 경우 기본 모듈이 아닌 기능 모듈의 build.gradle
에 firebase firebase-database
종속 항목을 추가할 수 있습니다. 이렇게 하면 대부분의 사용자의 다운로드 크기가 줄어듭니다.
기능 모듈에서 Firebase SDK를 사용할 때 다음 주의 사항에 유의하세요.
애널리틱스
first_open
이벤트에 의존하는 동적 링크 또는 Firebase 인앱 메시지와 같은 제품은 동적 기능 모듈에서 사용될 때 이 이벤트를 놓칠 수 있습니다.Cloud Firestore와 인증을 함께 사용하는 경우 항상 동일한 모듈에 둘 다 포함해야 합니다. 이것이 가능하지 않은 경우 인증이 Cloud Firestore 보다 먼저 로드되는지 확인하십시오. 그렇지 않으면 일부 Cloud Firestore 작업의 인증 상태가 잘못될 수 있습니다.
firebase-crashlytics-ndk
를 동적 기능 모듈의 종속 항목으로 사용하는 경우 Crashlytics NDK 문서 에 설명된 대로 앱의build.gradle
파일에서unstrippedNativeLibsDir
속성을 설정해야 합니다.
기능 모듈 및 Play 기능 제공에 대한 자세한 내용 은 Play 기능 제공 개요 를 참조하세요.
Google 서비스 Gradle 플러그인 vs Google Play 서비스 vs Google Play 스토어
Google, Firebase 및 Android 생태계의 여러 부분에는 유사한 명명 규칙이 있습니다. 각각에 대한 간략한 설명은 다음과 같습니다.
- Google 서비스 Gradle 플러그인
- 빌드 시 실행되는 Gradle 플러그인(
com.google.gms.google-services
)은 앱이 Firebase 및 Google API에 액세스할 수 있는 올바른 구성을 갖도록 합니다. - 이름에도 불구하고 이 플러그인은 Google Play 서비스(다음 항목 참조)와 관련이 없으며 런타임 시 앱의 기능에 영향을 주지 않습니다.
- 이 플러그인은 Firebase 설정의 일부로 앱에 추가하는
google-services.json
파일도 처리합니다. Google 서비스 Gradle 플러그인 에 대해 자세히 알아보세요. - 구글 플레이 서비스
- Android 기기에서 실행되고 기기의 앱에 몇 가지 일반적인 Google API(예: Google 지도 및 Google 로그인)를 제공하는 보이지 않는 백그라운드 서비스
- 이러한 공통 API를 단일 서비스로 중앙 집중화함으로써 다른 앱의 크기를 줄이고 장치가 OS 업데이트 없이 자동 보안 업데이트 및 기능 향상을 받을 수 있습니다. 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 저장소 에서 오픈 소스 라이브러리로 개발됩니다. 우리는 비공개로 개발된 나머지 Firebase 라이브러리를 곧 공개 GitHub으로 옮기기 위해 적극적으로 노력하고 있습니다!
빠른 시작 샘플
Firebase는 Android에서 대부분의 Firebase API에 대한 빠른 시작 샘플 모음을 유지 관리합니다. 공개 Firebase GitHub 빠른 시작 저장소 에서 이러한 빠른 시작을 찾아보세요.
각 빠른 시작을 Android Studio 프로젝트로 연 다음 모바일 기기 또는 가상 기기(AVD)에서 실행할 수 있습니다. 또는 Firebase SDK를 사용하기 위한 예제 코드로 이 빠른 시작을 사용할 수 있습니다.