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

1. 시작하기 전에

이 코드랩에서는 사용자가 포그라운드에서 앱을 사용하든 백그라운드에서 앱을 사용하든 관계없이 사용자와 소통할 수 있는 기능을 추가하는 방법을 배웁니다.

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. 코드랩의 패키지 이름을 입력하세요. com.google.firebase.codelab.fcmandfiam

앱에 google-services.json 파일 추가

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

앱에 google-services 플러그인 추가

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

build.gradle

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

앱/빌드.gradle

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

종속성 추가

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

앱/빌드.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 툴바에서 File > Sync Project with Gradle Files 를 선택합니다.

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 모두에서 보낼 수 있습니다. 이 코드랩에서는 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 앱에서 사용자에게 메시지를 보냅니다.

참조 문서