[firebase] notification / message

[firebase] notification / message

2021.07.27 - [프로그래밍 공부/Spring Boot] - [Java] spring boot - firebase message server

이전 포스팅에서 백단에서의 메세지요청을 만들었으니,

앱에서의 메세지받는 코드를 작성해보자.

우선 디펜던시부터 받아오고~

implementation platform('com.google.firebase:firebase-bom:28.1.0') implementation 'com.google.firebase:firebase-messaging-ktx'

manifest에 service를 등록해주자

여기서, 이전 포스팅처럼 채널로 보내려면 모든 유저가 등록되는 채널을 우선 만들어 준다.

해당 클래스는 이렇게 FirebaseMessagingService를 extend해준다.

class FirebaseService : com.google.firebase.messaging.FirebaseMessagingService() { companion object { private val TAG = FirebaseService::class.java.simpleName } override fun onMessageReceived(remoteMessage: RemoteMessage) { super.onMessageReceived(remoteMessage) } override fun onNewToken(token: String) { super.onNewToken(token) } }

토큰이 새로 발급된다면 onNewToken으로 들어오게 되는데

폐쇄망같은 경우 firestore에 접근을 못할 수도 있기때문에

sendRegistrationToServer() 라는이름으로 함수를 만들어 서버에 저장한다.

그런데 지금은 딱히 그정도까지는 필요 없기 때문에 onMessageResceived만 작성해도 된다.

LogUtil.i(TAG, "From: ${remoteMessage.from}") if (remoteMessage.data.isNotEmpty()) { LogUtil.i(TAG, "Message data payload: ${remoteMessage.data}") if (/* Check if data needs to be processed by long running job */ true) { // For long-running tasks (10 seconds or more) use WorkManager. //scheduleJob() } else { // Handle message within 10 seconds //handleNow() } } remoteMessage.notification?.let { LogUtil.d(TAG, "Message Notification Body: ${it.body}") showNotification( context = this, title = it.title, message = it.body ) }

끄읕

반응형

from http://ttubeoki.tistory.com/43 by ccl(A) rewrite - 2021-12-29 13:27:48