일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Spark
- Slack Rate Limit
- 팀 발달 모델
- 슬랙 파일업로드 제한
- 알림무시
- 카프카 성능
- 카프카
- Scale Cube
- Tuckman
- Core/Context
- 해킹
- n-gram
- kafka
- bag of words
- 스케일 큐브
- 머신러닝
- FCM
- Scouter
- 슬랙
- firebase
- 파이어베이스
- Slack Limit
- 이미지 푸시
- 스카우터
- Rate Limit
- 슬랙 파일업로드
- Slack File Upload
- 자연어처리 #konlpy #형태소분석
- 코어/컨텍스트
- 웹보안
- Today
- Total
플랫폼 개발팀 기술 블로그
[FCM] #2. Firebase 프로젝트 생성 및 Android 앱 FCM 설정 본문
[FCM] #2. Firebase 프로젝트 생성 및 Android 앱 FCM 설정
FCM(Firebase Cloud Message) 메시지가 기기로 전달이 되려면 발신자인 Firebase 그리고 수신자인 기기 설정이 필요하다.
기기 설정은 전문 앱개발자가 아니기 때문에 간단하게 Android 환경에서 샘플 앱을 만들고 FCM 관련 부분을 설정한다.
Firebase
Firebase 가입
Firebase 콘솔로 이동
프로젝트 생성
2. 프로젝트 추가 클릭
3. 프로젝트 이름 추가 / 약관 동의 체크 / 프로젝트 만들기 클릭
4. 프로젝트 생성 완료 / 계속 클릭
5. 프로젝트 메인 화면
Firebase 프로젝트에 안드로이드 앱 등록
1. 프로젝트 설정 클릭
Firebase 설정 일반 정보를 볼수 있다. 간단히 보자
프로젝트ID를 유니크하게 만들면 ID만 나오는데 fcmmsg로 만든 프로젝트들이 많이 있어서 숫자까지 나온다.
아마도 동일한 프로젝트 이름의 넘버링 같다.
외부에 공개되는 이름도 나와있다.
해당 프로젝트에 앱을 등록하지 않아서 그림과 같이 프로젝트 앱이 없다고 나온다.
안드로이드 아이콘 을 클릭하여 앱을 등록하자.
2. 앞으로 만들 안드로이드 앱의 패키지 이름 등록 후 앱 등록 클릭
3. 다음 클릭
프로젝트의 설정 정보를 json파일로 다운로드 화면을 볼 수 있다.
친절하게 경로까지 나와있다. 굳이 이 화면서 다운로드 받지 않아도 나중에 다운로드 가능하다. 미리 받아도 상관없다.
4. 다음 클릭
gradle 기준으로 종속 설정도 친절하게 나와있다. 나중에 설정하면 된다.
5. 이 단계 건너뛰기 클릭
미리 작업된 앱이 있으면 설치가 되었는지 확인하는 과정인데 아직 앱을 만들지 않았으므로 건너뛴다.
6. 해당 프로젝트에 안드로이드 앱이 하나 추가되었다.
7. 상황에 따라 앱 추가를 클릭하고 IOS 앱을 등록해도 된다.
여기선 안드로이드만 세팅할 예정이므로 등록하지 않는다.
google-services.json
Android 앱 제작
Android Stuido 설치
Android 프로젝트 생성
1. 메뉴에서 File / New / New Project 클릭
Applcation name을 입력한다. 본인은 fcmmsg를 등록하였다.
Pakage name은 위에서 등록한 안드로이드 앱의 패키지명과 동일하게 해준다.
2. Phone and Tablet 설정하고 Next 클릭
테스트할 Android 환경을 설정한다. 본인은 Oreo를 선택하였다.
3. Empty Activity 선택 Next 클릭 / finish
앱에 대한 액티비티 선택이다. FCM 메시지 테스트만 하기 때문에 빈 액티비티를 선택하였다.
4. Tools / Firebase 클릭
Android Studio에서는 Firebase 관련 툴을 제공한다.
Firebase를 클릭하면 오른쪽 관련 메뉴가 보인다.
해당 메뉴들은 Firebase 설정을 최대한 자동화 해주는 기능들이다.
수동으로 설정해도 상관없다.
5. Set up Firebase Clound Messaging 클릭
본인은 FCM만 사용할 예정이라 해당 메뉴를 클릭한다.
6. Connect to Firebase 클릭
첫번째로 Firebase에 접속 인증정보를 입력하여 생성한 fcmmsg를 선택한다.
7. Add FCM to app 클릭 / Accept Chages 클릭
Connect your app to Firebase가 정상적으로 연결되면 Connected라고 나온다.
이번엔 접속된 Firebase 프로젝트의 설정 정보를 자동으로 추가 설정해준다.
Accept Changes 클릭하면
프로젝트단 gradle 및 앱단 gradle 설정, app폴더의 google-servervice.json 까지 정보를 자동으로 추가해준다.
8. ③, ④설정
③Access the device registration token은 Firebase에서 사용하는 기기 토큰을 접속하는 방법이 설명되어 있고,
④Handle messages는 FCM 메시지를 받았을 때 처리하는 방법이 설명되어 있다.
9. MsgFireBaseIdService 클래스 생성
③Access the device registration token을 적용하기 위해 클래스를 생성한다.
10. MsgFirebaseMessagingService 클래스 생성
④ Handle messages을 적용하기 위해 클래스를 생성한다.
11. MsgFireBaseIdService 클래스 코드 적용
좌측에 두개의 클래스가 추가 되었다.
MsgFireBaseIdService에 코드를 추가한다. 8. ③, ④설정 코드임
sendRegirationToServer(refreshToken) 내용은 주석으로 처리한다.
해당 메소드는 서버쪽에서 토큰을 저장해야하므로 관련된 부분의 샘플 메소드다.
12. MsgFirebaseMassagingServcie 클래스 코드 적용
8. ③, ④설정 코드를 보고 추가한다.
ScheduleJob() 및 HandleNow()는 주석으로 처리한다.
메시지가 도달하였을 때에 대한 샘플 메소드이므로 우선 주석처리한다.
13. AndroidManifest.xml 설정
기기토큰 및 메시징 처리를 위하여 메니페스트를 적용한다.
com.google.firebase.INSTANCE_ID_EVENT 는 토큰 처리이므로 토큰 처리 클래스 MsgFireBaseIdServece를 추가한다.
com.google.firebase.INSTANCE_MESSAGING_EVENT 는 메시지 처리이므로 메세지 처리 클래서 MsgFirebaseMessagingService를 추가한다.
14. Firebse 콘솔에서 메시지를 보내본다.
프로젝트 생성 및 FCM 설정이 거의 다 끝났다.
15. 에뮬레이터 선정
우선 앱이 잘 뜨는지 확인해 보기 애뮬레이터 설정을 해야 한다.
처음 Run app 할 때 새로 에뮬레이터를 추가해 줘야 한다.
Create New Virtual Device를 클릭하여 추가한다.
보인은 Nexus 5X를 추가했다.
16. 에뮬레이터에서 앱 확인
Run app을 하면 에뮬레이터에서 앱을 확인 할 수 있다.
밑에 로그중 Refresh token은 기기의 앱 토큰이다.
Firebase 콘솔에서 토큰을 넣어서 테스트 해야 하기 때문에 우선 복사해 놓자.
보통 아래와 같은 형태다
e2mbtHS8PfE:APA91bHeC0r91I-OBD9qyGHNZ9Qb18AFHsPX7WhuTfBjWAbpK7RX0s8AQeBBV1uZYhO-sNdCZnKdk41GlI0WG6h0FTuDVp1Huueb_G78a4a8d-DxaS-g0sJcAGdjz9cNsq
기기 토큰이 변경될 때는 여러 경우가 있는데 보통 새로 앱이 설치되었을 때나, OS 자체 복원인 경우, 그리고 앱 데이터 삭제를 했을 경우에 일어난다.
앱을 종료했을 경우에는 기기 토큰 변경이 일어나지 않는다.
Firebase 콘솔에서 메시지 테스트
에뮬레이터 앱 실행 화면
앱을 종료하거나 백그라운드 상태로 변경한다.
Firebase 콘솔 메시지 보내기
이제 처음으로 메시지를 보내본다.
Send your first mesasge를 클릭하면 알림 작성 화면이 나온다.
알림 제목과 내용을 입력한다.
에뮬레이터 앱 메시지 도달 화면
마치며...
'Article' 카테고리의 다른 글
머신러닝 입문하기 (0) | 2019.01.31 |
---|---|
JAVA APM Scouter 활용 - 2부 스카우터 기능 활용 및 페이퍼 플러그인 (0) | 2019.01.31 |
MariaDB : Xtrabackup 편 (0) | 2019.01.25 |
[FCM] #1. 소개 및 메시지 (0) | 2019.01.24 |
JAVA APM Scouter 활용 - 1부 APM 선정과 스카우터의 지표 소개 (4) | 2019.01.24 |