FCM 및 FIAM을 사용하여 사용자에게 메시지 보내기

1. 시작하기 전에

이 Codelab에서는 사용자가 포그라운드에서 앱을 사용하든 백그라운드에서 앱을 사용하든 상관없이 사용자와 소통하는 기능을 추가하는 방법을 알아봅니다.

206c7ecece550bde.png

전제 조건

없음

무엇을 배울 것인가

  • Android 앱에 Firebase 추가
  • FCM 및 FIAM 종속성 추가
  • 앱에 테스트 FCM 메시지 보내기
  • 앱에 테스트 FIAM 메시지 보내기

필요한 것

  • 안드로이드 스튜디오 4.1
  • Android 기기 또는 에뮬레이터

2. 시작하기

샘플 코드 받기

명령줄에서 GitHub 저장소를 복제합니다.

시작 앱 가져오기

Android 스튜디오에서 codelab-fcm-and-fiam 디렉터리( android_studio_folder.png ). 이는 이전 단계( 파일 > 열기 > .../codelab-fcm-and-fiam)에서 복제된 것입니다.

이제 Android Studio에서 FcmAndFiam 프로젝트를 열어야 합니다. google-services.json 파일 누락에 대한 경고가 표시되더라도 걱정하지 마세요. 다음 단계에서 추가될 예정입니다.

3. Firebase 콘솔 프로젝트 생성

프로젝트에 Firebase 추가

  1. Firebase 콘솔 로 이동합니다.
  2. 프로젝트 추가를 선택합니다.
  3. 프로젝트 이름을 선택하거나 입력합니다.
  4. Firebase 콘솔의 나머지 설정 단계를 따른 다음 프로젝트 만들기 (또는 기존 Google 프로젝트를 사용하는 경우 Firebase 추가)를 클릭합니다.
  5. 새 프로젝트의 개요 화면에서 Android 아이콘을 클릭하여 설정 워크플로를 시작하세요.
  6. Codelab의 패키지 이름( com.google.firebase.codelab.fcmandfiam )을 입력하세요.

앱에 google-services.json 파일 추가

패키지 이름을 추가한 후 앱 등록을 클릭하고 google-services.json 다운로드를 클릭하여 Firebase Android 구성 파일을 얻은 다음 google-services.json 파일을 프로젝트의 app 디렉터리에 복사합니다. 파일이 다운로드되면 건너뛰기를 클릭하여 콘솔에 표시된 다음 단계를 진행할 수 있습니다(build-android-start 프로젝트에서 이미 완료됨).

앱에 Google 서비스 플러그인 추가

google-services 플러그인은 google-services.json 파일을 사용하여 Firebase를 사용하도록 애플리케이션을 구성합니다. google-services 플러그인 종속성과 플러그인 자체는 각각 프로젝트 및 앱 수준 빌드 파일에 이미 추가되어 있어야 합니다. 다음 항목을 확인하십시오.

build.gradle

buildscript {
  ...
  dependencies {
    ...
    classpath 'com.google.gms:google-services:4.3.8'
  }
}

앱/build.gradle

plugins {
  ...
  id: 'com.google.gms.google-services'
}

종속성 추가

FCM 및 FIAM에는 다음 종속성이 필요합니다. 이러한 종속성은 이미 앱 수준 빌드 파일에 추가되어 있습니다. 다음 종속성이 추가되었는지 확인합니다.

앱/build.gradle

dependencies {
  ...
  implementation platform('com.google.firebase:firebase-bom:28.4.2')
  implementation 'com.google.firebase:firebase-analytics'
  implementation 'com.google.firebase:firebase-messaging'
  implementation 'com.google.firebase:firebase-inappmessaging-display'
}

프로젝트를 Gradle 파일과 동기화하세요

앱에서 모든 종속 항목을 사용할 수 있도록 하려면 이 시점에서 프로젝트를 Gradle 파일과 동기화해야 합니다. Android Studio 도구 모음에서 파일 > Gradle 파일과 프로젝트 동기화를 선택합니다.

4. 로그 식별자

Firebase 클라우드 메시징과 Firebase 인앱 메시징은 모두 식별자를 사용하여 앱에 메시지를 보냅니다. FCM은 등록 토큰을 사용하고 FIAM은 설치 ID를 사용합니다.

  1. MainActivity.kt 에서 TODO를 아래 코드로 바꿔 메시지를 보내는 데 필요한 식별자를 기록합니다.
FirebaseMessaging.getInstance().token.addOnCompleteListener { regTokenTask ->
   if (regTokenTask.isSuccessful) {
       Log.d(TAG, "FCM registration token: ${regTokenTask.result}")
   } else {
       Log.e(TAG, "Unable to retrieve registration token",
           regTokenTask.exception)
   }
}
FirebaseInstallations.getInstance().id.addOnCompleteListener { installationIdTask ->
   if (installationIdTask.isSuccessful) {
       Log.d(TAG, "Firebase Installations ID: ${installationIdTask.result}")
   } else {
       Log.e(TAG, "Unable to retrieve installations ID",
           installationIdTask.exception)
   }
}
  1. Android 장치를 연결하고 실행 ( 실행.png ) Android 스튜디오 도구 모음에서. 로그 식별자 버튼을 탭하면 FCM 등록 토큰과 Firebase 설치 ID가 logcat에 기록됩니다. 출력은 다음과 같아야 합니다.
D/FcmAndFiam: Firebase Installations ID: emMc5...AsJfb
  FCM registration token: emMc5LART6GV7...r0Q

5. 테스트 FCM 메시지 보내기

FCM 메시지는 Firebase 콘솔과 FCM REST API 모두에서 보낼 수 있습니다. 이 Codelab에서는 FCM 알림 메시지를 작성하여 기기로 보냅니다. 알림 메시지는 시스템의 알림 영역에 표시되는 메시지입니다. 다음 방법으로 테스트 FCM 메시지를 보냅니다.

  1. 앱이 백그라운드에 있는지 확인하세요(홈 화면으로 이동).
  2. Firebase 콘솔로 이동하여 왼쪽 탐색 메뉴에서 클라우드 메시징을 선택하세요.
  3. 첫 번째 메시지 보내기를 선택하세요.
  4. 메시지 제목과 본문을 추가한 다음 테스트 메시지 보내기를 클릭합니다.

207ced65f5245ada.png

  1. FCM 등록 토큰을 추가한 후 테스트를 클릭하세요.

f3556c6a8a6453fe.png

  1. 기기의 디스플레이 알림을 관찰하세요
  2. 알림을 탭하면 앱이 열립니다.

6. 테스트 FIAM 메시지 보내기

Firebase 인앱 메시지는 다양한 사용자 이벤트의 결과로 트리거될 수 있습니다. 테스트 메시지는 앱 열기 이벤트를 사용하여 인앱 메시지를 트리거합니다. 다음 방법으로 테스트 FIAM 메시지를 보냅니다.

  1. 앱이 백그라운드에 있는지 확인하세요(홈 화면으로 이동).
  2. Firebase 콘솔로 이동하여 왼쪽 탐색 메뉴에서 인앱 메시지를 선택하세요.
  3. 첫 번째 캠페인 만들기를 선택하세요.
  4. 상단 배너 캠페인을 선택하고 메시지 제목과 본문을 입력하세요.
  5. 기기에서 테스트를 클릭하세요.

69f6ea5efff240d1.png

  1. 설치 ID를 추가하고 테스트를 클릭하세요.

24b101edfab47144.png

  1. 앱 다시 열기
  2. 앱 메시지에서 관찰

7. 축하합니다

축하합니다. FCM 및 FIAM 메시지를 모두 성공적으로 보냈습니다. 이제 사용자가 앱을 포그라운드에서 사용하든, 앱이 백그라운드에서 사용하든 상관없이 사용자와 소통하는 방법을 알게 되었습니다.

추가 읽기

무엇 향후 계획

  • 자신의 Android 앱에서 사용자에게 메시지를 보냅니다.

참조 문서