[본론] Unity 에서 , FCM ( Firebase Cloud Message ) 을 통해 구현한 푸시알림의 수신거부 ( 거절 )을 구현하기 .

이번 포스팅은 지난번에는 FCM에 관하여 몰랐던 내용을 추가하려고 한다.

지난번에 , 현 회사 프로젝트의 푸시알림으로 보상을 지급하는 기능을 추가할 때에 ,

유저가 푸시 알림의 수신을 거부할 경우에, 어쩔까 하다가 .

FCM 의 “주제” 를 구독하고 , 구독을 취소하는 식으로 구현을 했었는데

이게 문제를 불러왔다.

푸시 수신 아이템 지급이 두번되거나, 세번 되는 식으로 계속해서 버그가 생겼다.

(이는 사실 근본적으로는 , 지금 프로젝트의 코드 자체가 씬을 초기화 할 때에 씬을 초기화 하는 것이 아니라,

일부 요소들을 초기화하다보니, 초기화 되지 않는 클래스들이 존재했기 때문이기는 하다. 허나, 그렇다고 해서

기존에 비효율적인 시스템에 계속 새 시스템을 엮으면, 이 프로젝트는 점점 더 꼬이게 될 것이라고 생각했고 ,

새로 추가되는 기능이 만약 독립적으로 존재할 수 있다면 , 그게 여러모로 더 깔끔 할 것이라 생각해 보완하기로 했다. )

FCM 의 “주제”라는 기능은 구독하고 취소해서 수신거부를 구현하라고 있는 게 아니었다.

너무 당연한 것이, 주제 기능은 푸시를 끄고 켜는 것이 아니라, 일단 수신하고 세부적으로 필터링 하는 것에 가깝기 때문이다 .

답은 의외로 심플했다.

using Firebase.Messaging;
      // 푸시 알림을 받지 않는다. 
      FirebaseMessaging.TokenRegistrationOnInitEnabled = false ; 
      // 푸시 알림을 받는다 ( 기본 설정 )
      FirebaseMessaging.TokenRegistrationOnInitEnabled = true ; 

위와 같이 하면, 깔끔하게 구현된다.

구독으로 수신거부를 구현할 때에도 , 위 같은 기능이 당연히 있겠지 싶었지만,

핑계를 대자면 , 프로퍼티 이름이 그다지 직관적이지 않아서

솔직히는 , 제대로 문서를 찾아보지 않아서

착각했던 것 같다.