본문 바로가기
개발/Android

[Android] FCM Data 와 Notification

by tempus 2021. 7. 23.
반응형

FCM Message Type 

Notification Message: Firebase 콘솔을 사용하여 메세지를 전송할 수 있고 JSON형식을 따릅니다. 데이터 또한 포함해서 보낼 수 있습니다.(포어그라운드 / 백그라운드 상태에서 동작 가능) -Data를 포함해서 보낼 수 있습니다.

  • 백그라운드 상태 : 시스템 트레이를 통하여 Notification이 표시 -> Default로 처음 시작하는 Activity가 실행
  • 포어그라운드 상태 : onMessageReceived를 통해 데이터 처리
{
  "message":{
    "token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
    "notification":{
      "title":"Portugal vs. Denmark",
      "body":"great match!"
    }
}

Data Message: 클라이언트 앱에서 데이터를 처리해야하거나 혹은 커스텀된 알림을 보여줄 때 사용합니다.

{
  "message":{
    "token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
    "data":{
      "Nick" : "Mario",
      "body" : "great match!",
      "Room" : "PortugalVSDenmark"
    }
  }
}

두 개의 메세지 유형 최대 PayLoad는 4KB입니다.

Notification Message(data 포함) JSON에 따른 내용들은onMessageReceived()을 통해 데이터를 처리할 수 있습니다.

override fun onMessageReceived(remoteMessage: RemoteMessage) {

     if(remoteMessage.notification != null){
            Log.i("body", remoteMessage.notification!!.body.toString()) //notification body 부분
            Log.i("title", remoteMessage.notification!!.title.toString()) //notification title 부분
            Log.i("data", remoteMessage.data.toString()) //Data 부분 출력

            //메세지 출력
            sendNotification(remoteMessage)

            //수신 받은 데이터 처리 
            updateData(remoteMessage.data)


        }
   }
반응형

댓글


loading