본문 바로가기

BE/Web

[웹][FCM,GCM] Firebase 클라우드 메시징 데이터 수신

Firebase 클라우드 메시징이란? 

서버에서 클라이언트 애플리케이션으로 메시지(알림)를 안정적으로 보낼 수 있는 무료 교차 플랫폼 메시징 솔루션이다.

모든 사용자에게 알림을 전송할수도있고, 그룹을 지어 알림을 전송할 수 있다. GCM(Google Cloud Messaging)의 업그레이드 버전으로, IOS,Android,Web을 지원한다. 


Firebase 클라우드 메시징 데이터 수신 방법 

1) DB에서 키 획득(서버와 DB사이에서 일어남)

서버에서 데이터를 스마트폰에 전달하기 위해 데이터베이스에서 사용자마다 생성된 키(기기 등록 토큰)를 획득합니다.

이때 키는, 사용자의 스마트폰에서 설치된 애플리케이션을 식별할 수 있는 인증 키입니다.

클라이언트 설정시, 현재 토큰을 검색하고 싶은 경우,  FirebaseInstanceId.getInstance().getToken()을 호출합니다.

토큰이 아직 설정되지 않은 경우, NULL을 반환합니다. 


2) Firebase Cloud Server에 전송 

DB에서 획득한 사용자의 키와 앱까지 전송하고자 하는 데이터를 Firebase Cloud서버에 전송합니다. 

이때, FCM서버는 HTTP프로토콜을 지원하므로,  HTTP POST형식으로 요청을 해야합니다.


3) 애플리케이션에서 키 식별 및 데이터 전달  

Firebase 서버에서는 전달받은 사용자 기기등록 토큰을 식별하여 사용자의 스마트폰에 데이터를 전달합니다. 

이때 토큰에는, 어떤 스마트폰의 어떤 앱인지 등의 정보를 담습니다. 사용자의 스마트폰에 데이터가 전달되면 서비스가 실행됩니다.


Firebase 로부터 온 알림 메시지 형태(Firebase에서 애플리케이션으로 전송한)  

 { "message":{
   
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
   
"notification":{
     
"title":"Portugal vs. Denmark",
     
"body":"great match!"
   
}
 
}
}
{
 
"message":{
   
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
   
"notification":{
     
"title":"Portugal vs. Denmark",
     
"body":"great match!"
   
}
 
}
}
{
 
"message":{
   
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
   
"notification":{
     
"title":"Portugal vs. Denmark",
     
"body":"great match!"
   
}
 
}
}
{
 
"message":{
   
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
   
"notification":{
     
"title":"Portugal vs. Denmark",
     
"body":"great match!"
   
}
 
}
}