- [Android] Android FCM 설정2023년 10월 11일 22시 55분 49초에 업로드 된 글입니다.작성자: 핀수728x90반응형
Firebase Cloud Messaging
메시지를 안정적으로 무료 전송할 수 있는 크로스 플랫폼 메시징 솔루션
기본 원리
- Firebase용 Cloud Functions 또는 앱 서버와 같이 메시지를 작성, 타겟팅, 전송할 수 있는 신뢰할 수 있는 환경
- 메시지 요청을 수락하는 등 여러 기능을 수행하는 FCM 백엔드는 주제를 통해 메시지 팬아웃을 수행하고 메시지 ID와 같은 메시지 메타데이터를 생성
- 기기로 타겟팅된 메시지를 라우팅하고, 메시지 전송을 처리하고, 필요한 경우 플랫폼별 구성을 적용
- 알림이 표시되거나 앱의 포그라운드/백그라운드 상태 및 관련 애플리케이션 로직에 따라 메시지가 처리
수명 주기 흐름
- FCM에서 메시지를 수신하도록 기기 등록
- 클라이언트 앱의 인스턴스가 메시지를 수신하도록 등록하여 앱 인스턴스를 고유하게 식별하는 등록 토큰을 받음 (같은 기기에서 앱을 삭제 후 재설치하면 토큰이 바뀌는 것을 확인함)
- 다운스트림 메시지 전송 및 수신
- 앱 서버가 클라이언트 앱에 메시지를 보냄
- 메시지 요청이 FCM 백엔드로 전송
- FCM 백엔드는 메시지 요청을 수신, 메시지 ID와 기타 메타데이터를 생성해 플랫폼별 전송레이어로 보냄
- 기기가 온라인 상태이면 메시지가 플랫폼별 전송 레이어를 통해 기기로 전송
- 기기에서 클라이언트 앱이 메시지 또는 알림을 수신
- 앱 서버가 클라이언트 앱에 메시지를 보냄
Android FCM 설정
Android 4.4 이상의 Google Play 스토어 앱이 설치된 기기가 필요함
1. SDK 설정
Android 프로젝트에 Firebase 추가하기
아직 추가하지 않았다면 아래의 링크 참고
내 프로젝트와 Firebase 연동하기
1. Firebase 사이트로 이동한다. 링크 2. 시작하기를 누른다. 3. 프로젝트 만들기를 클릭한다. 4. 프로젝트의 이름을 입력한다. 각 화면의 안내에 따라 프로젝트를 생성하면 된다. 5. 프로젝트 생성이
www.pinslog.com
그리고 종속성을 추가해준다.
build.gradle (:app)
implementation 'com.google.firebase:firebase-messaging:23.2.1'
2. FirebaseMessagingService 작성
FirebaseMessagingService 클래스를 확장하는 서비스를 추가
백그라운드에서 앱 알림 수신 외에 다른 방식으로도 메시지를 처리 하려는 경우에 필요함
class MyFirebaseMessagingService: FirebaseMessagingService() { override fun onNewToken(token: String) { super.onNewToken(token) } override fun onMessageReceived(message: RemoteMessage) { super.onMessageReceived(message) } }
onNewToken()
클라우드 서버에 등록 되었을 때 호출
token은 앱을 구분하기 위한 고유한 키가 된다.
onMessageReceived()
클라우드 서버에서 메시지 전송 시 자동 호출됨
3. AndroidManifast.xml 수정
푸시 서비스는 인터넷을 사용하기 때문에 인터넷 권한도 추가해주어야 한다.
<service android:name=".fcm.MyFirebaseMessagingService" android:exported="false"> <intent-filter> <action android:name="com.google.firebase.MESSAGING_EVENT"/> </intent-filter> </service>
테스트 해보기
첫번째 캠페인 만들기를 클릭하면
알림메시지와 인앱메시지로 나뉜다.
알림메시지를 클릭하고 (다음에 인앱 메시지도 해봐야지
내용을 작성한 뒤 테스트 메시지 전송 버튼을 클릭한다.
FCM 등록 토큰 추가 버튼을 눌러 토큰을 등록해주고
테스트 버튼을 누르면 해당 기기에 메시지가 뜨는 것을 알 수 있다.
공부하며 작성된 글이라 잘못된 정보가 있을 수 있습니다.
말씀해주시면 수정하겠습니다. 감사합니다.
References
아래 글을 참고하여 작성 되었습니다.
Android에서 Firebase 클라우드 메시징 클라이언트 앱 설정
Google I/O 2023에서 Firebase의 주요 소식을 확인하세요. 자세히 알아보기 의견 보내기 Android에서 Firebase 클라우드 메시징 클라이언트 앱 설정 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐
firebase.google.com
[Android] FCM을 이용해 Push 구현하기
Push Service? FCM? 서버에서 모바일 장치에 보내는 알림 또는 메시지. 직접 구현한 서버에서 사용자 장치로 알림을 보내기 위해서는 앱과 서버의 연결을 지속적으로 유지해야한다. 그러나 FCM(Firebase
maejing.tistory.com
728x90반응형'Android > Android' 카테고리의 다른 글
[Android] 권한 요청 워크 플로우 (0) 2023.12.28 [Android] 외부저장소에 파일 저장하기 (0) 2023.11.13 [Android] Jetpack Compose 프로젝트 생성 + MainActivity 살펴보기 (0) 2023.10.06 [Android] Thread와 Coroutine (0) 2023.10.05 [Android] 커스텀뷰 만들기 (0) 2023.10.04 다음글이 없습니다.이전글이 없습니다.댓글