Flutter에서 주제 메시징

FCM 주제 메시징은 게시/구독 모델을 기반으로 특정 주제를 구독하는 여러 기기에 메시지를 보내 줍니다. 필요에 따라 주제 메시지를 작성하면 FCM에서 라우팅을 처리하여 올바른 기기에 정확히 전송합니다.

예를 들어 지역 조수 예보 앱 사용자는 '조류 특보' 주제를 수신 동의하여 해당 지역에서 바다낚시에 최적인 상태에 대한 알림을 수신할 수 있습니다. 스포츠 앱 사용자는 응원하는 팀의 경기 실황 자동 업데이트를 구독할 수 있습니다.

주제와 관련된 주의사항은 다음과 같습니다.

  • 주제 메시징은 날씨 등 공개적으로 제공되는 정보에 가장 적합합니다.

  • 주제 메시지는 지연 시간이 아닌 처리량에 맞게 최적화되어 있습니다. 기기 한 대나 적은 수의 기기에 빠르고 안전하게 전송하려면 주제가 아닌 등록 토큰으로 메시지를 타겟팅하세요.

  • 사용자를 기준으로 여러 기기에 메시지를 보내야 하는 경우 기기 그룹 메시징을 사용하는 것이 좋습니다.

  • 주제 메시징에서 각 주제에 지원하는 구독에는 제한이 없습니다. 그러나 FCM은 다음 영역에 제한을 두고 있습니다.

    • 하나의 앱 인스턴스는 최대 2,000개까지 주제를 구독할 수 있습니다.
    • 일괄 가져오기를 사용하여 앱 인스턴스를 구독하는 경우 각 요청은 1,000개의 앱 인스턴스로 제한됩니다.
    • 새 구독의 빈도는 프로젝트별로 비율이 제한됩니다. 단기간에 지나치게 많은 구독 요청을 보내는 경우 FCM 서버는 429 RESOURCE_EXHAUSTED('할당량 초과') 응답을 보냅니다. 지수 백오프로 다시 시도하세요.

클라이언트 앱에서 주제 구독

클라이언트 앱에서 기존 주제를 구독하거나 새 주제를 만들 수 있습니다. 클라이언트 앱에서 Firebase 프로젝트에 아직 없는 새 주제 이름을 구독하면 FCM에 이 이름으로 새 주제가 생성되고 이후에 다른 클라이언트에서 이 주제를 구독할 수 있습니다.

주제를 구독하려면 주제 이름과 함께 subscribeToTopic()을 호출합니다. 이 메서드는 구독이 성공하면 확인되는 Future를 반환합니다.

await FirebaseMessaging.instance.subscribeToTopic("topic");

구독을 취소하려면 주제 이름과 함께 unsubscribeFromTopic()을 호출합니다.

다음 단계