본문 바로가기
🖥 Programming/📱 Android (Kotlin)

[Android][kotlin] FCM(Firebase Cloud Message) 구현하기! - 1편

by MinChan-Youn 2022. 2. 24.

FCM(Firebase Cloud Message)에 대해서 알아보겠습니다.

Firebase 클라우드 메시징(FCM)은 무료로 메세지를 안정적으로 전송할 수 있는 교차 플랫폼 메시징 솔루션

FCM을 통하여 새 이메일, 기타 데이터를 동기화 할 수 있음, 또 알림을 통하여 사용자를 유지하고 재참여 유도가능

한번의 메세지로 최대 4,000바이트의 페이로드를 클라이언트 앱에 전송가능

1편에서는 Firebase셋팅하는 방법에 대해서 알아보겠습니다.

 

참고자료:

https://firebase.google.com/docs/cloud-messaging?hl=ko 

 

1. Firebase 설정

 

● 인터넷창에 https://console.firebase.google.com 을 입력하여 Firebase접속

 

 프로젝트 이름 입력

 프로젝트 만들기를 클릭하여 프로젝트 Firebase프로젝트 생성을 완료

 

 

 

 

 

● 생성한 프로젝트 클릭

 

 

● 프로젝트에서 사용할 "앱 추가"

● Android 선택

 

3가지 내용 작성(바로 아래에 자세하게 설명하니 잘 따라와 주세요)

1-1. Android 패키지이름

 - FCM을 사용할 안드로이드 프로젝트의 "AndroidManifest.xml"의 package를 확인하여 입력

 

1-2. 앱 닉네임(선택사항)

 - 나중에 AOS, IOS앱들을 더 등록할텐데 많은 것들중에서 앱을 구분할 수 있는 이름을 입력

(어떻게 입력해도 아무런 영향이 없습니다.)

 

1-3. 디버그 서명 인증서 SHA-1(선택사항)

 - Android Studio에서 하단 Terminal에서 다음을 입력 " ./gradlew signingReport" /PW: "android" 입력("제외)

*만약 zsh: permission denied: ./gradlew 오류가 나타난다면 터미널에 chmod +x gradlew 입력후 다시 zsh: permission denied: ./gradlew입력

실행이 완료되면 다음과 같이 나오는데 SHA1의 값을 Firebase에 입력 (보안상 일부만 보여드립니다)

 

2-1. 구성 파일 다운로드

 - 설명글에 나와있는 것처럼 google-services.json을 다운받아 우측에 있는 해당 프로젝트 경로에 파일을 옮겨줍니다.

(해당위치에 정확하게 추가하지 않으면 제대로 동작하지 않을 수 있으니 참고해주세요!)

 

3-2. Firebase SDK추가

 - 아래의 그림처럼 build.gradle(project)build.gradle(Module)의 파일에 FCM관련 코드를 추가.

 

build.gradle(project)

// Top-level build file where you can add configuration options common to all sub-projects/modules.
//FCM
buildscript {
    dependencies {
        classpath 'com.google.gms:google-services:4.3.10'
    }
}

plugins {
    id 'com.android.application' version '7.1.1' apply false
    id 'com.android.library' version '7.1.1' apply false
    id 'org.jetbrains.kotlin.android' version '1.5.30' apply false
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

build.gradle(Module)

plugins {
    id 'com.android.application'
    id 'org.jetbrains.kotlin.android'
}
//FCM
apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'

android {
    compileSdk 32

    defaultConfig {
        applicationId "com.example.fcm_kotlin"
        minSdk 23
        targetSdk 32
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = '1.8'
    }
    buildFeatures{
        viewBinding true
    }
}

dependencies {

    implementation 'androidx.core:core-ktx:1.7.0'
    implementation 'androidx.appcompat:appcompat:1.4.1'
    implementation 'com.google.android.material:material:1.5.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.1.3'
    testImplementation 'junit:junit:4.13.2'
    androidTestImplementation 'androidx.test.ext:junit:1.1.3'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'


    //FCM
    implementation platform('com.google.firebase:firebase-bom:29.1.0')
    implementation 'com.google.firebase:firebase-analytics-ktx'
    implementation 'com.google.firebase:firebase-messaging-ktx' //FCM-push
}

 

● 여기까지 잘 따라오셨다면 Firebase의 앱 설정이 끝났습니다.

 

 

● Firebase홈페이지에서 좌측상단 / 프로젝트 설정 - 클라우드메세징

 

서버키를 잘 복사 해둡니다. (나중에 PUSH알림을 보낼때 필요!)

 

 

 

여기까지 따라오느라 고생하셨습니다.

2편에서는 Android앱을 만들어보고 테스트까지 진행해보겠습니다.

 

 

 

 

 

 

글 정리 & 소스코드

[정리]

FCM구현 1편: https://minchanyoun.tistory.com/99

 

[Android][kotlin] FCM(Firebase Cloud Message) 구현하기! - 1편

FCM(Firebase Cloud Message)에 대해서 알아보겠습니다. Firebase 클라우드 메시징(FCM)은 무료로 메세지를 안정적으로 전송할 수 있는 교차 플랫폼 메시징 솔루션 FCM을 통하여 새 이메일, 기타 데이터를 동

minchanyoun.tistory.com

FCM구현 2편: https://minchanyoun.tistory.com/101

 

[Android][kotlin] FCM(Firebase Cloud Message) 구현하기! - 2편

FCM(Firebase Cloud Message)에 대해서 알아보겠습니다. Firebase 클라우드 메시징(FCM)은 무료로 메세지를 안정적으로 전송할 수 있는 교차 플랫폼 메시징 솔루션 FCM을 통하여 새 이메일, 기타 데이터를 동

minchanyoun.tistory.com

 

[소스코드]
FCM: https://github.com/younminchan/kotlin-study/tree/main/FCMkotlin

 

GitHub - younminchan/kotlin-study: kotlin-example

kotlin-example. Contribute to younminchan/kotlin-study development by creating an account on GitHub.

github.com

 

 

질문 또는 궁굼한 부분은 댓글을 남겨주세요! 친절하게 답변드리겠습니다!

응원의 댓글은 저에게 큰 힘이 된답니다! :)

즐거운 하루되세요!

 

깃허브 보러 놀러오세요 👇 (맞팔환영)

https://github.com/younminchan

 

younminchan - Overview

Android Developer. younminchan has 6 repositories available. Follow their code on GitHub.

github.com