FCM을 시작하려면 앱이 기기의 백그라운드에 있을 때 알림 작성기 에서 개발 기기로 테스트 알림 메시지를 보내는 가장 간단한 사용 사례를 구축하세요. 이 페이지에는 설정에서 확인에 이르기까지 이를 달성하기 위한 모든 단계가 나열되어 있습니다. FCM용 Android 클라이언트 앱을 설정한 경우 이미 완료한 단계를 다룰 수 있습니다.
SDK 설정
이 섹션에서는 이미 앱에 다른 Firebase 기능을 사용 설정한 경우 완료했을 수 있는 작업에 대해 설명합니다.
시작하기 전에
Android Studio 를 최신 버전으로 설치하거나 업데이트합니다.
프로젝트가 다음 요구 사항을 충족하는지 확인하십시오.
- API 레벨 19(KitKat) 이상 대상
- 안드로이드 4.4 이상 사용
- 다음 버전 요구 사항을 충족하는 Jetpack(AndroidX) 을 사용합니다.
-
com.android.tools.build:gradle
v3.2.1 이상 -
compileSdkVersion
28 이상
-
실제 기기를 설정하거나 에뮬레이터 를 사용하여 앱을 실행합니다.
Google Play 서비스에 종속된 Firebase SDK를 사용 하려면 기기나 에뮬레이터에 Google Play 서비스가 설치되어 있어야 합니다.Google 계정을 사용하여 Firebase에 로그인 합니다.
아직 Android 프로젝트가 없고 Firebase 제품을 사용해 보고 싶다면 빠른 시작 샘플 중 하나를 다운로드할 수 있습니다.
Firebase 프로젝트 만들기
Android 앱에 Firebase를 추가하려면 먼저 Android 앱에 연결할 Firebase 프로젝트를 만들어야 합니다. Firebase 프로젝트에 대해 자세히 알아보려면 Firebase 프로젝트 이해 를 방문하세요.
Firebase에 앱 등록
Android 앱에서 Firebase를 사용하려면 Firebase 프로젝트에 앱을 등록해야 합니다. 앱을 등록하는 것을 종종 프로젝트에 앱을 "추가"라고 합니다.
Firebase 콘솔 로 이동합니다.
프로젝트 개요 페이지 중앙에서 Android 아이콘(
) 또는 앱 추가 를 클릭하여 설정 워크플로를 시작합니다.Android 패키지 이름 필드에 앱의 패키지 이름을 입력합니다.
패키지 이름 은 기기와 Google Play 스토어에서 앱을 고유하게 식별합니다.
패키지 이름 은 종종 애플리케이션 ID 라고 합니다.
모듈(앱 수준) Gradle 파일(일반적으로
app/build.gradle
)에서 앱의 패키지 이름을 찾습니다(예: 패키지 이름:com.yourcompany.yourproject
).패키지 이름 값은 대소문자를 구분하며 Firebase 프로젝트에 등록한 후에는 이 Firebase Android 앱에 대해 변경할 수 없습니다.
(선택사항) 기타 앱 정보 입력: 앱 닉네임 및 디버그 서명 인증서 SHA-1 .
앱 닉네임 : Firebase 콘솔에서 나에게만 표시되는 내부 편의 식별자
디버그 서명 인증서 SHA-1 : SHA-1 해시 는 Firebase 인증( Google 로그인 또는 전화번호 로그인 사용 시 ) 및 Firebase 동적 링크 에 필요합니다.
앱 등록 을 클릭합니다.
Firebase 구성 파일 추가
Firebase Android 구성 파일(
)을 다운로드하여 앱에 추가합니다.google-services.json google-services.json 다운로드 를 클릭하여 Firebase Android 구성 파일을 가져옵니다.
구성 파일을 앱의 모듈(앱 수준) 루트 디렉터리로 이동합니다.
Firebase 구성 파일에는 고유하지만 비밀이 아닌 프로젝트 식별자가 포함되어 있습니다. 이 구성 파일에 대해 자세히 알아보려면 Firebase 프로젝트 이해 를 방문하세요.
언제든지 Firebase 구성 파일 을 다시 다운로드할 수 있습니다.
구성 파일 이름에
(2)
와 같은 추가 문자가 추가되지 않았는지 확인하십시오.
Firebase SDK에서
구성 파일의 값에 액세스할 수 있도록 하려면 Google 서비스 Gradle 플러그인 (google-services.json google-services
)이 필요합니다.루트 수준(프로젝트 수준) Gradle 파일(
<project>/build.gradle
)에서 Google 서비스 플러그인을 buildscript 종속성으로 추가합니다.buildscript { repositories { // Make sure that you have the following two repositories google() // Google's Maven repository mavenCentral() // Maven Central repository } dependencies { ... // Add the dependency for the Google services Gradle plugin classpath 'com.google.gms:google-services:4.3.15' } } allprojects { ... repositories { // Make sure that you have the following two repositories google() // Google's Maven repository mavenCentral() // Maven Central repository } }
모듈(앱 수준) Gradle 파일(일반적으로
<project>/<app-module>/build.gradle
)에서 Google 서비스 플러그인을 추가합니다.plugins { id 'com.android.application' // Add the Google services Gradle plugin id 'com.google.gms.google-services' ... }
앱에 Firebase SDK 추가
모듈(앱 수준) Gradle 파일 (일반적으로
<project>/<app-module>/build.gradle
)에서 Firebase Cloud Messaging Android 라이브러리에 대한 종속성을 추가합니다. Firebase Android BoM 을 사용하여 라이브러리 버전 관리를 제어하는 것이 좋습니다.Firebase 클라우드 메시징에 대한 최적의 환경을 위해 Firebase 프로젝트에서 Google Analytics를 활성화 하고 앱에 Google Analytics용 Firebase SDK를 추가하는 것이 좋습니다.
Java
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:31.2.0') // Add the dependencies for the Firebase Cloud Messaging and Analytics libraries // When using the BoM, you don't specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-messaging' implementation 'com.google.firebase:firebase-analytics' }
Firebase Android BoM 을 사용하면 앱에서 항상 호환되는 버전의 Firebase Android 라이브러리를 사용합니다.
(대안) BoM을 사용 하지 않고 Firebase 라이브러리 종속성 추가
Firebase BoM을 사용하지 않기로 선택한 경우 종속성 줄에 각 Firebase 라이브러리 버전을 지정해야 합니다.
앱에서 여러 Firebase 라이브러리를 사용하는 경우 BoM을 사용하여 모든 버전이 호환되도록 라이브러리 버전을 관리하는 것이 좋습니다.
dependencies { // Add the dependencies for the Firebase Cloud Messaging and Analytics libraries // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-messaging:23.1.1' implementation 'com.google.firebase:firebase-analytics:21.2.0' }
Kotlin+KTX
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:31.2.0') // Add the dependencies for the Firebase Cloud Messaging and Analytics libraries // When using the BoM, you don't specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-messaging-ktx' implementation 'com.google.firebase:firebase-analytics-ktx' }
Firebase Android BoM 을 사용하면 앱에서 항상 호환되는 버전의 Firebase Android 라이브러리를 사용합니다.
(대안) BoM을 사용 하지 않고 Firebase 라이브러리 종속성 추가
Firebase BoM을 사용하지 않기로 선택한 경우 종속성 줄에 각 Firebase 라이브러리 버전을 지정해야 합니다.
앱에서 여러 Firebase 라이브러리를 사용하는 경우 BoM을 사용하여 모든 버전이 호환되도록 라이브러리 버전을 관리하는 것이 좋습니다.
dependencies { // Add the dependencies for the Firebase Cloud Messaging and Analytics libraries // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-messaging-ktx:23.1.1' implementation 'com.google.firebase:firebase-analytics-ktx:21.2.0' }
Android 프로젝트를 Gradle 파일과 동기화합니다.
Android Gradle 플러그인(AGP) v4.2 이하를 사용하는 Gradle 빌드는 Java 8 지원을 활성화해야 합니다. 그렇지 않으면 Firebase SDK를 추가할 때 이러한 Android 프로젝트에 빌드 실패가 발생합니다.
이 빌드 실패를 수정하려면 다음 두 가지 옵션 중 하나를 따를 수 있습니다.
- 오류 메시지에 나열된
compileOptions
를 앱 수준build.gradle
파일에 추가합니다. - Android 프로젝트의
minSdkVersion
을 26 이상으로 늘립니다.
이 FAQ 에서 이 빌드 실패에 대해 자세히 알아보십시오.
- 오류 메시지에 나열된
등록 토큰에 액세스
특정 장치에 메시지를 보내려면 해당 장치의 등록 토큰을 알아야 합니다. 이 자습서를 완료하려면 알림 콘솔의 필드에 토큰을 입력해야 하므로 토큰을 검색한 후 복사하거나 안전하게 저장해야 합니다.
앱을 처음 시작할 때 FCM SDK는 클라이언트 앱 인스턴스에 대한 등록 토큰을 생성합니다. 단일 기기를 타겟팅하거나 기기 그룹을 만들려면 FirebaseMessagingService
를 확장하고 onNewToken
을 재정의하여 이 토큰에 액세스해야 합니다.
이 섹션에서는 토큰을 검색하는 방법과 토큰 변경 사항을 모니터링하는 방법을 설명합니다. 초기 시작 후 토큰이 회전될 수 있으므로 최신 업데이트된 등록 토큰을 검색하는 것이 좋습니다.
등록 토큰은 다음과 같은 경우에 변경될 수 있습니다.
- 앱이 새 기기에서 복원됩니다.
- 사용자가 앱을 제거/재설치합니다.
- 사용자가 앱 데이터를 지웁니다.
현재 등록 토큰 검색
현재 토큰을 검색해야 하는 경우 FirebaseMessaging.getInstance().getToken()
을 호출합니다.
Kotlin+KTX
FirebaseMessaging.getInstance().token.addOnCompleteListener(OnCompleteListener { task -> if (!task.isSuccessful) { Log.w(TAG, "Fetching FCM registration token failed", task.exception) return@OnCompleteListener } // Get new FCM registration token val token = task.result // Log and toast val msg = getString(R.string.msg_token_fmt, token) Log.d(TAG, msg) Toast.makeText(baseContext, msg, Toast.LENGTH_SHORT).show() })
Java
FirebaseMessaging.getInstance().getToken() .addOnCompleteListener(new OnCompleteListener<String>() { @Override public void onComplete(@NonNull Task<String> task) { if (!task.isSuccessful()) { Log.w(TAG, "Fetching FCM registration token failed", task.getException()); return; } // Get new FCM registration token String token = task.getResult(); // Log and toast String msg = getString(R.string.msg_token_fmt, token); Log.d(TAG, msg); Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show(); } });
토큰 생성 모니터링
onNewToken
콜백은 새 토큰이 생성될 때마다 실행됩니다.
Kotlin+KTX
/** * Called if the FCM registration token is updated. This may occur if the security of * the previous token had been compromised. Note that this is called when the * FCM registration token is initially generated so this is where you would retrieve the token. */ override fun onNewToken(token: String) { Log.d(TAG, "Refreshed token: $token") // If you want to send messages to this application instance or // manage this apps subscriptions on the server side, send the // FCM registration token to your app server. sendRegistrationToServer(token) }
Java
/** * There are two scenarios when onNewToken is called: * 1) When a new token is generated on initial app startup * 2) Whenever an existing token is changed * Under #2, there are three scenarios when the existing token is changed: * A) App is restored to a new device * B) User uninstalls/reinstalls the app * C) User clears app data */ @Override public void onNewToken(@NonNull String token) { Log.d(TAG, "Refreshed token: " + token); // If you want to send messages to this application instance or // manage this apps subscriptions on the server side, send the // FCM registration token to your app server. sendRegistrationToServer(token); }
토큰을 얻은 후 앱 서버로 보내고 원하는 방법을 사용하여 저장할 수 있습니다.
테스트 알림 메시지 보내기
대상 장치에 앱을 설치하고 실행합니다. Apple 기기에서는 원격 알림 수신 권한 요청을 수락해야 합니다.
앱이 기기의 백그라운드에 있는지 확인하세요.
Firebase 콘솔에서 메시징 페이지 를 엽니다.
이것이 첫 번째 메시지인 경우 첫 번째 캠페인 만들기 를 선택합니다.
- Firebase 알림 메시지 를 선택하고 만들기 를 선택합니다.
그렇지 않으면 캠페인 탭에서 새 캠페인 을 선택한 다음 알림 을 선택합니다.
메시지 텍스트를 입력합니다. 다른 모든 필드는 선택 사항입니다.
오른쪽 창에서 테스트 메시지 보내기 를 선택합니다.
FCM 등록 토큰 추가 필드에 이 가이드의 이전 섹션에서 얻은 등록 토큰을 입력합니다.
테스트 를 선택합니다.
Test 를 선택하면 대상 클라이언트 장치(백그라운드에 앱 포함)가 알림을 수신해야 합니다.
앱에 대한 메시지 전달에 대한 통찰력은 Android 앱에 대한 "노출"(사용자에게 표시되는 알림) 데이터와 함께 Apple 및 Android 기기에서 전송되고 열린 메시지 수를 기록하는 FCM 보고 대시보드 를 참조하십시오.
다음 단계
포그라운드 앱에 메시지 보내기
앱이 백그라운드에 있는 동안 알림 메시지를 성공적으로 전송했으면 Android 앱에서 메시지 수신 을 참조하여 포그라운드 앱으로 전송을 시작하십시오.
알림 메시지 그 이상
알림 메시지를 넘어 다른 고급 동작을 앱에 추가하려면 다음을 참조하세요.
,FCM을 시작하려면 앱이 기기의 백그라운드에 있을 때 알림 작성기 에서 개발 기기로 테스트 알림 메시지를 보내는 가장 간단한 사용 사례를 구축하세요. 이 페이지에는 설정에서 확인에 이르기까지 이를 달성하기 위한 모든 단계가 나열되어 있습니다. FCM용 Android 클라이언트 앱을 설정한 경우 이미 완료한 단계를 다룰 수 있습니다.
SDK 설정
이 섹션에서는 이미 앱에 다른 Firebase 기능을 사용 설정한 경우 완료했을 수 있는 작업에 대해 설명합니다.
시작하기 전에
Android Studio 를 최신 버전으로 설치하거나 업데이트합니다.
프로젝트가 다음 요구 사항을 충족하는지 확인하십시오.
- API 레벨 19(KitKat) 이상 대상
- 안드로이드 4.4 이상 사용
- 다음 버전 요구 사항을 충족하는 Jetpack(AndroidX) 을 사용합니다.
-
com.android.tools.build:gradle
v3.2.1 이상 -
compileSdkVersion
28 이상
-
실제 기기를 설정하거나 에뮬레이터 를 사용하여 앱을 실행합니다.
Google Play 서비스에 종속된 Firebase SDK를 사용 하려면 기기나 에뮬레이터에 Google Play 서비스가 설치되어 있어야 합니다.Google 계정을 사용하여 Firebase에 로그인 합니다.
아직 Android 프로젝트가 없고 Firebase 제품을 사용해 보고 싶다면 빠른 시작 샘플 중 하나를 다운로드할 수 있습니다.
Firebase 프로젝트 만들기
Android 앱에 Firebase를 추가하려면 먼저 Android 앱에 연결할 Firebase 프로젝트를 만들어야 합니다. Firebase 프로젝트에 대해 자세히 알아보려면 Firebase 프로젝트 이해 를 방문하세요.
Firebase에 앱 등록
Android 앱에서 Firebase를 사용하려면 Firebase 프로젝트에 앱을 등록해야 합니다. 앱을 등록하는 것을 종종 프로젝트에 앱을 "추가"라고 합니다.
Firebase 콘솔 로 이동합니다.
프로젝트 개요 페이지 중앙에서 Android 아이콘(
) 또는 앱 추가 를 클릭하여 설정 워크플로를 시작합니다.Android 패키지 이름 필드에 앱의 패키지 이름을 입력합니다.
패키지 이름 은 기기와 Google Play 스토어에서 앱을 고유하게 식별합니다.
패키지 이름 은 종종 애플리케이션 ID 라고 합니다.
모듈(앱 수준) Gradle 파일(일반적으로
app/build.gradle
)에서 앱의 패키지 이름을 찾습니다(예: 패키지 이름:com.yourcompany.yourproject
).패키지 이름 값은 대소문자를 구분하며 Firebase 프로젝트에 등록한 후에는 이 Firebase Android 앱에 대해 변경할 수 없습니다.
(선택사항) 기타 앱 정보 입력: 앱 닉네임 및 디버그 서명 인증서 SHA-1 .
앱 닉네임 : Firebase 콘솔에서 나에게만 표시되는 내부 편의 식별자
디버그 서명 인증서 SHA-1 : SHA-1 해시 는 Firebase 인증( Google 로그인 또는 전화번호 로그인 사용 시 ) 및 Firebase 동적 링크 에 필요합니다.
앱 등록 을 클릭합니다.
Firebase 구성 파일 추가
Firebase Android 구성 파일(
)을 다운로드하여 앱에 추가합니다.google-services.json google-services.json 다운로드 를 클릭하여 Firebase Android 구성 파일을 가져옵니다.
구성 파일을 앱의 모듈(앱 수준) 루트 디렉터리로 이동합니다.
Firebase 구성 파일에는 고유하지만 비밀이 아닌 프로젝트 식별자가 포함되어 있습니다. 이 구성 파일에 대해 자세히 알아보려면 Firebase 프로젝트 이해 를 방문하세요.
언제든지 Firebase 구성 파일 을 다시 다운로드할 수 있습니다.
구성 파일 이름에
(2)
와 같은 추가 문자가 추가되지 않았는지 확인하십시오.
Firebase SDK에서
구성 파일의 값에 액세스할 수 있도록 하려면 Google 서비스 Gradle 플러그인 (google-services.json google-services
)이 필요합니다.루트 수준(프로젝트 수준) Gradle 파일(
<project>/build.gradle
)에서 Google 서비스 플러그인을 buildscript 종속성으로 추가합니다.buildscript { repositories { // Make sure that you have the following two repositories google() // Google's Maven repository mavenCentral() // Maven Central repository } dependencies { ... // Add the dependency for the Google services Gradle plugin classpath 'com.google.gms:google-services:4.3.15' } } allprojects { ... repositories { // Make sure that you have the following two repositories google() // Google's Maven repository mavenCentral() // Maven Central repository } }
모듈(앱 수준) Gradle 파일(일반적으로
<project>/<app-module>/build.gradle
)에서 Google 서비스 플러그인을 추가합니다.plugins { id 'com.android.application' // Add the Google services Gradle plugin id 'com.google.gms.google-services' ... }
앱에 Firebase SDK 추가
모듈(앱 수준) Gradle 파일 (일반적으로
<project>/<app-module>/build.gradle
)에서 Firebase Cloud Messaging Android 라이브러리에 대한 종속성을 추가합니다. Firebase Android BoM 을 사용하여 라이브러리 버전 관리를 제어하는 것이 좋습니다.Firebase 클라우드 메시징에 대한 최적의 환경을 위해 Firebase 프로젝트에서 Google Analytics를 활성화 하고 앱에 Google Analytics용 Firebase SDK를 추가하는 것이 좋습니다.
Java
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:31.2.0') // Add the dependencies for the Firebase Cloud Messaging and Analytics libraries // When using the BoM, you don't specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-messaging' implementation 'com.google.firebase:firebase-analytics' }
Firebase Android BoM 을 사용하면 앱에서 항상 호환되는 버전의 Firebase Android 라이브러리를 사용합니다.
(대안) BoM을 사용 하지 않고 Firebase 라이브러리 종속성 추가
Firebase BoM을 사용하지 않기로 선택한 경우 종속성 줄에 각 Firebase 라이브러리 버전을 지정해야 합니다.
앱에서 여러 Firebase 라이브러리를 사용하는 경우 BoM을 사용하여 모든 버전이 호환되도록 라이브러리 버전을 관리하는 것이 좋습니다.
dependencies { // Add the dependencies for the Firebase Cloud Messaging and Analytics libraries // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-messaging:23.1.1' implementation 'com.google.firebase:firebase-analytics:21.2.0' }
Kotlin+KTX
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:31.2.0') // Add the dependencies for the Firebase Cloud Messaging and Analytics libraries // When using the BoM, you don't specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-messaging-ktx' implementation 'com.google.firebase:firebase-analytics-ktx' }
Firebase Android BoM 을 사용하면 앱에서 항상 호환되는 버전의 Firebase Android 라이브러리를 사용합니다.
(대안) BoM을 사용 하지 않고 Firebase 라이브러리 종속성 추가
Firebase BoM을 사용하지 않기로 선택한 경우 종속성 줄에 각 Firebase 라이브러리 버전을 지정해야 합니다.
앱에서 여러 Firebase 라이브러리를 사용하는 경우 BoM을 사용하여 모든 버전이 호환되도록 라이브러리 버전을 관리하는 것이 좋습니다.
dependencies { // Add the dependencies for the Firebase Cloud Messaging and Analytics libraries // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-messaging-ktx:23.1.1' implementation 'com.google.firebase:firebase-analytics-ktx:21.2.0' }
Android 프로젝트를 Gradle 파일과 동기화합니다.
Android Gradle 플러그인(AGP) v4.2 이하를 사용하는 Gradle 빌드는 Java 8 지원을 활성화해야 합니다. 그렇지 않으면 Firebase SDK를 추가할 때 이러한 Android 프로젝트에 빌드 실패가 발생합니다.
이 빌드 실패를 수정하려면 다음 두 가지 옵션 중 하나를 따를 수 있습니다.
- 오류 메시지에 나열된
compileOptions
를 앱 수준build.gradle
파일에 추가합니다. - Android 프로젝트의
minSdkVersion
을 26 이상으로 늘립니다.
이 FAQ 에서 이 빌드 실패에 대해 자세히 알아보십시오.
- 오류 메시지에 나열된
등록 토큰에 액세스
특정 장치에 메시지를 보내려면 해당 장치의 등록 토큰을 알아야 합니다. 이 자습서를 완료하려면 알림 콘솔의 필드에 토큰을 입력해야 하므로 토큰을 검색한 후 복사하거나 안전하게 저장해야 합니다.
앱을 처음 시작할 때 FCM SDK는 클라이언트 앱 인스턴스에 대한 등록 토큰을 생성합니다. 단일 기기를 타겟팅하거나 기기 그룹을 만들려면 FirebaseMessagingService
를 확장하고 onNewToken
을 재정의하여 이 토큰에 액세스해야 합니다.
이 섹션에서는 토큰을 검색하는 방법과 토큰 변경 사항을 모니터링하는 방법을 설명합니다. 초기 시작 후 토큰이 회전될 수 있으므로 최신 업데이트된 등록 토큰을 검색하는 것이 좋습니다.
등록 토큰은 다음과 같은 경우에 변경될 수 있습니다.
- 앱이 새 기기에서 복원됩니다.
- 사용자가 앱을 제거/재설치합니다.
- 사용자가 앱 데이터를 지웁니다.
현재 등록 토큰 검색
현재 토큰을 검색해야 하는 경우 FirebaseMessaging.getInstance().getToken()
을 호출합니다.
Kotlin+KTX
FirebaseMessaging.getInstance().token.addOnCompleteListener(OnCompleteListener { task -> if (!task.isSuccessful) { Log.w(TAG, "Fetching FCM registration token failed", task.exception) return@OnCompleteListener } // Get new FCM registration token val token = task.result // Log and toast val msg = getString(R.string.msg_token_fmt, token) Log.d(TAG, msg) Toast.makeText(baseContext, msg, Toast.LENGTH_SHORT).show() })
Java
FirebaseMessaging.getInstance().getToken() .addOnCompleteListener(new OnCompleteListener<String>() { @Override public void onComplete(@NonNull Task<String> task) { if (!task.isSuccessful()) { Log.w(TAG, "Fetching FCM registration token failed", task.getException()); return; } // Get new FCM registration token String token = task.getResult(); // Log and toast String msg = getString(R.string.msg_token_fmt, token); Log.d(TAG, msg); Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show(); } });
토큰 생성 모니터링
onNewToken
콜백은 새 토큰이 생성될 때마다 실행됩니다.
Kotlin+KTX
/** * Called if the FCM registration token is updated. This may occur if the security of * the previous token had been compromised. Note that this is called when the * FCM registration token is initially generated so this is where you would retrieve the token. */ override fun onNewToken(token: String) { Log.d(TAG, "Refreshed token: $token") // If you want to send messages to this application instance or // manage this apps subscriptions on the server side, send the // FCM registration token to your app server. sendRegistrationToServer(token) }
Java
/** * There are two scenarios when onNewToken is called: * 1) When a new token is generated on initial app startup * 2) Whenever an existing token is changed * Under #2, there are three scenarios when the existing token is changed: * A) App is restored to a new device * B) User uninstalls/reinstalls the app * C) User clears app data */ @Override public void onNewToken(@NonNull String token) { Log.d(TAG, "Refreshed token: " + token); // If you want to send messages to this application instance or // manage this apps subscriptions on the server side, send the // FCM registration token to your app server. sendRegistrationToServer(token); }
토큰을 얻은 후 앱 서버로 보내고 원하는 방법을 사용하여 저장할 수 있습니다.
테스트 알림 메시지 보내기
대상 장치에 앱을 설치하고 실행합니다. Apple 기기에서는 원격 알림 수신 권한 요청을 수락해야 합니다.
앱이 기기의 백그라운드에 있는지 확인하세요.
Firebase 콘솔에서 메시징 페이지 를 엽니다.
이것이 첫 번째 메시지인 경우 첫 번째 캠페인 만들기 를 선택합니다.
- Firebase 알림 메시지 를 선택하고 만들기 를 선택합니다.
그렇지 않으면 캠페인 탭에서 새 캠페인 을 선택한 다음 알림 을 선택합니다.
메시지 텍스트를 입력합니다. 다른 모든 필드는 선택 사항입니다.
오른쪽 창에서 테스트 메시지 보내기 를 선택합니다.
FCM 등록 토큰 추가 필드에 이 가이드의 이전 섹션에서 얻은 등록 토큰을 입력합니다.
테스트 를 선택합니다.
Test 를 선택하면 대상 클라이언트 장치(백그라운드에 앱 포함)가 알림을 수신해야 합니다.
앱에 대한 메시지 전달에 대한 통찰력은 Android 앱에 대한 "노출"(사용자에게 표시되는 알림) 데이터와 함께 Apple 및 Android 기기에서 전송되고 열린 메시지 수를 기록하는 FCM 보고 대시보드 를 참조하십시오.
다음 단계
포그라운드 앱에 메시지 보내기
앱이 백그라운드에 있는 동안 알림 메시지를 성공적으로 전송했으면 Android 앱에서 메시지 수신 을 참조하여 포그라운드 앱으로 전송을 시작하십시오.
알림 메시지 그 이상
알림 메시지를 넘어 다른 고급 동작을 앱에 추가하려면 다음을 참조하세요.