웹서버에서 FIrebase를 이용하여 안드로이드로 푸시 메시지를 보낼 때 백그라운드와 포그라운드가 각각 별도로 핸들링을 해야 합니다.
우선 클라우드 메시징이 안되신 분들은 아래의 글을 참고해주세요.
자 그리고 앱 실행 중에도 푸시 알림을 받기 위해 MyFirebaseMessagingService를 구현하셨을 겁니다.
이를 구현하면서 백그라운드는 별도로 동작하고 포그라운드 상태에서만 MyFirebaseMessagingService가 호출이 됩니다.
아래는 웹서버(저는 스프링 프레임 워크입니다-자바 쪽)에서 메시지를 보내는 소스입니다.
해결 방법으로는 setNotification를 사용하지 않으면 됩니다.
대신 서버에서 title과 Body를 보내야 한다면 putData를 이용해서 보내시면 됩니다.
자 그리고 안드로이드에서 다음과 같이 데이터를 받는 것을 확인할 수 있습니다.
기존의 Firebase에서 제공하는 소스를 보시면(없으시면 아래의 코드를 사용하세요)
Log.d(TAG, "Message data payload: " + remoteMessage.getData());
그리고 Logcat을 확인해보면 Json 형식으로 데이터가 확인이 됩니다.
물론 백그라운드 상태, 포그라운드 상태 두 경우에서 다 확인하실 수 있습니다.
이 데이터를 이용하여 sendNotification에서 set 하는 부분에서 수정해주시면 되겠죠??
이상입니다.
'프로그래밍 > 안드로이드[Android]' 카테고리의 다른 글
[안드로이드] ERR_CLEARTEXT_NOT_PERMITTED 해결방법 (0) | 2019.06.26 |
---|---|
[안드로이드] apache http 에러 해결 방법[Android 9 버전] (0) | 2019.06.26 |
[Firebase] 앱 실행중 FCM 알림 수신[Foreground] (2) | 2019.06.25 |
[Firebase] FCM을 이용한 안드로이드 푸쉬 보내기[Cloud Messaging] (1) | 2019.06.18 |
[Firebase] 스프링 웹서버에서 안드로이드에 푸시 메시지 보내기[FCM를 이용] (42) | 2019.06.14 |