2019. 7. 31. 12:57 기타 상식
FirebaseMessage 란?
참고 출처 : https://firebase.google.com/docs/android/setup
Android 프로젝트에 Firebase 추가 | Firebase
시작하기 전에 Android 스튜디오를 설치하거나 최신 버전으로 업데이트합니다. Android 앱이 다음을 충족하는지 확인합니다. API 수준 16(Jelly Bean) 이상 타겟팅 Gradle 4.1 이상 사용 앱을 실행할 기기 또는 에뮬레이터를 설정합니다. Google Play가 포함된 에뮬레이터 이미지를 에뮬레이터에서 사용해야 합니다. Google 계정을 사용하여 Firebase에 로그인합니다. Android 앱 프로젝트가 준비되지 않았다면 빠른 시
firebase.google.com
Firebase Message 란?
GCM[Google Cloud Message ] 지원이 사실상 종료됨에 따라 필수적으로 Migration해야 하는 서비스이다.
위 출처에서는 기본적으로 FCM을 Android에서 사용하려면 어떻게 해야하는지 잘 설명하고 있다.
위 FCM 문서 내용중 중요한것은 아래와 같다.
1. Target SDK 버전은 16이상.
2. Gradle은 4.1 이상
만약 GCM에서 FCM으로 Migration해야한다면 아래의 링크, 영상을 확인하면 된다.
- https://developers.google.com/cloud-messaging/android/android-migrate-fcm
Migrate a GCM Client App for Android to Firebase Cloud Messaging | Cloud Messaging | Google Developers
You can migrate an existing GCM client app on Android to Firebase Cloud Messaging (FCM) using the instructions in this guide. Before getting started, keep in mind: GCM and FCM SDKs cannot co-exist within an application. GCM tokens retrieved via GoogleCloud
developers.google.com
Migration 과정은 간단하게는 GCM관련 permission, service등을 제거 한 후
FCM관련 service를 사용하게 하면 된다.
FCM의 적용, Migration의 방법에 대해서는 매우 간단하며 만약 기존의 GCM을 사용하고 있었다면
아마 Token을 얻어오는 과정만 수정한다면 그외에는 건드릴게 있나 싶다.
다만 개인적으로 해당 작업을 하면서 시간을 엄청 날렸던 점들에 대해서 적어보려고 한다.
우선 내가 Unity Client에 대해서 급작스럽게 fcm을 적용해야 하는 처지가 되서 진짜 맨땅에 헤딩을 엄청 했다.
기본적인 Gradle Build부터 현재 게임에 붙어있는 SDK들이 무엇인지 파악도 안된 상태에, 또 SDK들이 어떻게 엮여있는지 등등 하나하나 확인하며 작업하고 빌드하고 확인하는 과정을 주구장창했었는데 사실 엄청 간단했다.
우선 위의 출처에 나와있는 Firebase Message service문서를 순서대로 따라하면
Build.gradle에 implementation 'com.google.firebase:firebase-messaging:18.0.0' 이런식으로 나와있을 것이다.
이 문서에서 나오는 버전의 경우 반드시 최신버전은 아니기 때문에 만약 최신버전으로 적용하려고 한다면
maven을 확인하면 된다.
반면 나의 경우 게임에 엮여있는 SDK들 중 이미 FCM을 lib수준에서 implement하고 있던 SDK[KaKao......ㅅㅂ]가 있었고
이부분을 모른채 공식 문서만 따라서 진행하던 나는 뭐가 문제인지 모르고 시간낭비만 했었다.
내가 implement로 추가한 FCM 버전과 SDK에서 이미 적용한 버전이 달랐던 부분이 문제였는데
SDK에서는 15.0.2를 참조했고 위 문서에서는 18.0.0을 참조하게 했으니 1차 문제였다.
2차적인 문제는 15.0.2에서는 FirebaseinstanceIDService를 사용하는 반면
18.0.0에서는 deprecated되어 않도록 문서가 작성되어 있다는 것이다.
[더 짜증나는건 FCM 이놈들이 딱히 버전 충돌같은 것을 언급도 안했다는 것]
아무튼 사용하려는 Firebase 버전에 따라서 Token을 얻어오는 과정이 다르니 반드시 확인하도록 하자.
'기타 상식' 카테고리의 다른 글
함수 호출 정보에 관하여 (0) | 2019.09.05 |
---|---|
게임에서의 랜덤값에 대해서 (0) | 2019.09.02 |
멀티 스레드에 관해서 (0) | 2019.07.14 |
ORM이란? (0) | 2019.06.23 |
LockFree란? (0) | 2017.03.03 |