목차
Firebase Cloud Messaging, FCM
ref. 1 을 보고 FCM 을 한 번 사용 해 보자. quick-start source 는 여기서 받을 수 있다.
먼저 quick-start source 를 받자. : quickstart-android/messaging
push server 의 동작[ref. 3]
먼저 client 가 push(FCM message) 를 받기 위해서는 client(app) 이 FCM(connection server) 에 등록해야 한다. 등록을 하면 unique id 를 받게 되는데 이것을 registration token 이라 부른다. [ref. 4]이 registration token 을 받으면, FirebaseInstanceIdService.onTokenRefresh() 가 호출되는데, 여기서 이 token 을 app server 로 보내주면 된다.
app server 는 이 registration token 을 갖고 있고, 나중에 push 를 날릴 때 '누구'에게 날릴지를 FCM connection server 에게 알려줘야 하는데, 그 때 이 token 을 사용하게 된다.
app 만들기
- Google Play services 설치 : System Settings > Android SDK > SDK Tools tab > Google Play services(여기, 여기 참조)
- target Google APIs : AVD manager 에서 AVD 를 만들 때 target 에 with Google APIs 가 써져 있는 녀석을 선택하자.
- quickstart project : quickstart project 의 파일을 사용해도 된다. 주의할 점은 package 이름만 자신이 원하는 것으로 잘 바꿔 주면 된다.
- FirebaseMessagingService : FirebaseMessagingService 를 상속한 service 가 필요:
- message 를 처리할 때 사용.
- quick-start source 를 사용한다면, MyFirebaseMessagingService.onMessageReceived() 를 확인하자. 기본적으로 log 로만 받은 메시지를 출력하게 되어 있다.
- FirebaseInstanceIdService : FirebaseInstanceIdService 를 상속한 service 가 필요:
- registration token 을 처리할 때 사용. : onTokenRefresh() 에서 app server 로 registration 을 하도록 한다.(직접구현해야 함.)
- FCM SDK 가 registration token 을 client 가 처음 실행될 때 만든다.
- FCM 을 사용해야만 하는 앱이라면, android:minSdkVersion="8" 이상으로 해야 한다. 없어도 잘 돌아간다면 상관없다.
- Google Play Services 가 설치되어 있는지 check 하는 코드가 필요할 수도 있다.
app 에 Firebase 를 추가하기.
- Firebase project 등록 : https://console.firebase.google.com 로 가서 project 를 만들고,
- "google-services.json" config file 을 project 에 넣기 :
- 여기서 google-services.json 를 만들어 주는데, 이것을 android project 에 포함시키자.
- <project_root>\messaging\app\google-services.json
- gradle 설정: quickstart source 에 이미 적용되어 있다.
<project>/build.gradle buildscript { dependencies { // Add this line classpath 'com.google.gms:google-services:3.0.0' } } <project>/<app-module>/build.gradle // Add to the bottom of the file apply plugin: 'com.google.gms.google-services'
- 원하는 서비스관련 package 추가 : quick-start source 에 이미 들어가 있다.
- package list : Add Firebase to your Android Project | Firebase
- messaging library : com.google.firebase:firebase-messaging:9.2.1
- app/build.gradle 에 추가하면 된다.
- FirebaseMessaging.getInstance().subscribeToTopic("news") 를 하면 firebase console 에서 notification 으로 보내는 noti 를 받을 수 있다.(Topic message에 대한 이야기는 '목차 3.' 을 확인하자.)
실행하기
- GenyMotion emulator 로 할려면, google play service 가 동작하도록 하고(여기 참고) test 하도록 하자.
- http://opengapps.org/ 에서 x86_* 용 android open-gapps 를 설치하고 reboot 하면 된다. 참고로, open_gapps-x86-5.1-nano-*.zip 에도 google play service 가 들어가 있다.
- Firebase console 에서 notification 으로 message 를 client 로 보낼 수 있다. (아래 그림 참조)
- quick-start example 을 썼다면 logcat 으로 확인할 수 있다.(noti 를 받고 싶다면, MyFirebaseMessagingService.onMessageReceived() 를 수정해주자.)
여러기 기기로 message 보내기[ref. 5]
FCM 은 다음 2가지 방법을 제공한다.- Topic messaging
- Device group messaging
댓글 없음:
댓글 쓰기