Side Project - Push-Notification-Receiver
FCM(Firebase Cloud Messaging)을 통해 보낸 메세지를 수신하는 앱을 구현한 프로젝트
학습 회고
오늘은 Firebase의 클라우드 메세징을 안드로이드 앱에 연동해서 FCM을 통해 전송한 메세지를 수신하는 앱을 만드는 프로젝트를 시작했다.
오늘 공부한 내용
- Firebase Cloud Messaging(FCM)
Firebase 클라우드 메시징은 무료로 메세지를 안정적으로 전송할 수 있는 교차 플랫폼 메시징 솔루션이다.
FCM을 사용하면 클라이언트 앱으로 알림 메세지를 전송할 수 있다.
- 클라이언트 앱이 메세지를 수신하도록 기기를 등록하여 해당 앱 인스턴스를 고유하게 식별하는 등록 토큰을 받는다.
- 메세지를 보내는 앱 서버에서 클라이언트 앱으로 메세지를 보낸다.
- 메세지 요청이 FCM backend로 전송된다.
- FCM 백엔드가 메세지 요청을 수신하고 메세지 ID와 기타 메타데이터를 생성해서 플랫폼별 전송 레이어로 보낸다.
- 기기가 온라인 상태이면 메세지가 플랫폼별 전송 레이어를 통해 기기로 전송된다.
- 기기의 클라이언트 앱이 메세지나 알림을 수신한다.
메세지 유형은 2가지가 있다.
- 알림 메세지 - 사용자에게 표시되는 Key 모음이 사전에 정의되어 있으며, FCM SDK에서 메세지를 자동으로 처리한다.
앱이 Background 상태이면 알림 메세지는 알림 목록으로 전송된다. Foreground 상태인 경우, 콜백 함수가 메세지를 처리한다.
- 데이터 메세지 - 사용자가 정의한 커스텀 Key-Value 상만 포함되며, 클라이언트 앱에서 처리한다.
푸시 알림 수신기 앱에서는 데이터 메세지를 사용하였다.
https://firebase.google.com/docs/cloud-messaging/fcm-architecture
- FirebaseMessagingService
Forground 상태인 앱에서 데이터 메세지를 수신하기 위해 FirebaseMessagingService를 확장하는 서비스를 사용해서 onMessageReceived() 콜백 메서드를 오버라이딩 했다.
onMessageReceived()는 앱이 Foreground 상태일 때 알림을 수신 받으면 호출되는 콜백 메서드이다.
Background 상태일 때는 기기의 작업 표시줄로 알림이 전송된다.
FirebaseMessagingService를 사용하려면 우선 앱 매니페스트 파일에 service 구성요소를 추가해줘야 하고 MESSAGING_EVENT action을 추가해야 한다.
<service
android:name=".java.MyFirebaseMessagingService"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
https://firebase.google.com/docs/cloud-messaging/android/receive
'Android > Side Projects' 카테고리의 다른 글
오늘의 명언 앱 개발하기 (0) | 2022.02.06 |
---|---|
푸쉬 알림 수신기 앱 개발하기 (0) | 2022.02.05 |
Simple Web Browser 앱 개발하기 (0) | 2022.02.03 |
녹음기 앱 개발하기 (0) | 2022.02.02 |
녹음기 앱 개발하기 (0) | 2022.02.01 |