하루에 0.01%라도 성장하자

Develop/Android

FCM Topic 구독 구현하기

뚠님 2022. 8. 2. 18:03
반응형

Firebase 는 안드로이드 앱 개발하면서 제일 많이 연관되어 있는 플랫폼이다.

 

이중에 FCM은 사용자에게 알람을 보내기 위해 많이 사용하는데, 알람을 보내는 것도 크게 두가지 방식이 있다.

 

1. 사용자 Token 으로 보내기

2. 사용자 그룹으로 보내기

 

Token으로 보낼경우 특정한 사람을 지정해 보낼 수 있지만

 

그룹으로 보낼 경우 그 그룹에 속해 있는 모든 사람에게 보낼 수 있다.

 

여기서 편하게 그룹이라고 썼는데, Firebase 에서는 Topic 이라고 한다.

 

원리

1. 사용자가 앱을 통하여 topic을 구독함

2. 구독한 topic으로 서버에서 or firebase console 에서 FCM을 전송함

3. topic을 구독한 사용자는 firebase push를 받을 수 있음.

 

아래는 코드 

// 구독
fun subscribeTopic(topic: String) {
    FirebaseMessaging.getInstance().subscribeToTopic(topic).addOnCompleteListener { task ->
        if (task.isSuccessful) {
            ... // TODO Code
        } else {
            ... // 실패 했을 때 로직
        }
    }
}

// 구독 취소
fun unSubscribeTopic(topic: String) {
    FirebaseMessaging.getInstance().unsubscribeToTopic(topic).addOnCompleteListener { task ->
        if (task.isSuccessful) {
            ... // TODO Code
        } else {
            ... // 실패 했을 때 로직
        }
    }
}

 

전달 받은 Topic을 구독하면 해당 Topic으로 전달하는 메세지를 다 받을 수 있고 

다시 구독 취소를 하면 메세지를 받지 않는다.

반응형