FCM 주제 메시징은 게시/구독 모델을 기반으로 특정 주제를 구독하는 여러 기기에 메시지를 보내 줍니다. 필요에 따라 주제 메시지를 작성하면 FCM에서 라우팅을 처리하여 올바른 기기에 정확히 전송합니다.
예를 들어 지역 조수 예보 앱 사용자는 '조류 특보' 주제를 수신 동의하여 해당 지역에서 바다낚시에 최적인 상태에 대한 알림을 수신할 수 있습니다. 스포츠 앱 사용자는 응원하는 팀의 경기 실황 자동 업데이트를 구독할 수 있습니다.
주제와 관련된 주의사항은 다음과 같습니다.
주제 메시징은 날씨 등 공개적으로 제공되는 정보에 가장 적합합니다.
주제 메시지는 지연 시간이 아닌 처리량에 맞게 최적화되어 있습니다. 기기 한 대나 적은 수의 기기에 빠르고 안전하게 전송하려면 주제가 아닌 등록 토큰으로 메시지를 타겟팅하세요.
사용자를 기준으로 여러 기기에 메시지를 보내야 하는 경우 기기 그룹 메시징을 사용하는 것이 좋습니다.
주제 메시징에서 각 주제에 지원하는 구독에는 제한이 없습니다. 그러나 FCM은 다음 영역에 제한을 두고 있습니다.
- 하나의 앱 인스턴스는 최대 2,000개까지 주제를 구독할 수 있습니다.
- 일괄 가져오기를 사용하여 앱 인스턴스를 구독하는 경우 각 요청은 1,000개의 앱 인스턴스로 제한됩니다.
- 새 구독의 빈도는 프로젝트별로 비율이 제한됩니다. 단기간에 지나치게 많은 구독 요청을 보내는 경우 FCM 서버는
429 RESOURCE_EXHAUSTED
('할당량 초과') 응답을 보냅니다. 지수 백오프로 다시 시도하세요.
클라이언트 앱에서 주제 구독
클라이언트 앱에서 기존 주제를 구독하거나 새 주제를 만들 수 있습니다. 클라이언트 앱에서 Firebase 프로젝트에 아직 없는 새 주제 이름을 구독하면 FCM에 이 이름으로 새 주제가 생성되고 이후에 다른 클라이언트에서 이 주제를 구독할 수 있습니다.
주제를 구독하려면 주제 이름과 함께 subscribeToTopic()
을 호출합니다. 이 메서드는 구독이 성공하면 확인되는 Future
를 반환합니다.
await FirebaseMessaging.instance.subscribeToTopic("topic");
구독을 취소하려면 주제 이름과 함께 unsubscribeFromTopic()
을 호출합니다.
subscribeToTopic()
및 unsubscribeFromTopic()
은 웹 클라이언트에서 지원되지 않습니다. 웹 사용자의 구독을 관리하는 방법을 알아보려면 웹/JavaScript에서 주제로 메시지 보내기를 참고하세요.
다음 단계
- 주제 메시지를 전송하는 방법을 알아보세요.
- 서버에서 주제 구독을 관리하는 방법을 알아보세요.