게시/구독 모델을 기반으로 하는 FCM 주제 메시징을 사용하면 특정 주제를 선택한 여러 장치에 메시지를 보낼 수 있습니다. 필요에 따라 주제 메시지를 작성하면 FCM이 올바른 장치로 안정적으로 메시지 라우팅 및 전달을 처리합니다.
예를 들어 지역 조수 예측 앱 사용자는 "조류 경보" 주제를 선택하고 특정 지역에서 최적의 바닷물 낚시 조건에 대한 알림을 받을 수 있습니다. 스포츠 앱 사용자는 좋아하는 팀의 라이브 게임 점수 자동 업데이트를 구독할 수 있습니다.
주제에 대해 염두에 두어야 할 몇 가지 사항:
주제 메시징은 날씨 또는 기타 공개적으로 사용 가능한 정보와 같은 콘텐츠에 가장 적합합니다.
주제 메시지는 대기 시간보다는 처리량에 최적화되어 있습니다. 단일 기기 또는 소규모 기기 그룹에 빠르고 안전하게 전달하려면 메시지를 주제가 아닌 등록 토큰으로 타겟팅하세요 .
사용자당 여러 기기에 메시지를 보내야 하는 경우 해당 사용 사례에 대해 기기 그룹 메시징 을 고려하세요.
토픽 메시징은 각 토픽에 대한 무제한 구독을 지원합니다. 그러나 FCM은 다음 영역에서 제한을 적용합니다.
- 하나의 앱 인스턴스는 2000개 이하의 주제를 구독할 수 있습니다.
- 배치 가져오기 를 사용하여 앱 인스턴스를 구독하는 경우 각 요청은 1000개의 앱 인스턴스로 제한됩니다.
- 새 구독 빈도는 프로젝트별로 속도가 제한됩니다. 단기간에 너무 많은 구독 요청을 보내면 FCM 서버가
429 RESOURCE_EXHAUSTED
("할당량 초과") 응답으로 응답합니다. 지수 백오프로 재시도합니다.
주제에 대한 클라이언트 앱 구독
클라이언트 앱은 기존 주제를 구독하거나 새 주제를 생성할 수 있습니다. 클라이언트 앱이 새 주제 이름(Firebase 프로젝트에 아직 존재하지 않는 이름)을 구독하면 해당 이름의 새 주제가 FCM에 생성되고 이후에 모든 클라이언트가 이를 구독할 수 있습니다.
주제를 구독하려면 주제 이름과 함께 subscribeToTopic()
을 호출하십시오. 이 메서드는 구독이 성공했을 때 해결되는 Future
를 반환합니다.
await FirebaseMessaging.instance.subscribeToTopic("topic");
구독을 취소하려면 주제 이름과 함께 unsubscribeFromTopic()
을 호출하십시오.
다음 단계
- 주제 메시지를 보내는 방법에 대해 알아봅니다.
- 서버에서 주제 구독을 관리 하는 방법을 알아보세요.
- 여러 장치로 전송하는 다른 방법인 장치 그룹 메시지 에 대해 자세히 알아보세요.