서버 환경 및 FCM

Firebase Cloud Messaging의 서버 측은 다음 두 가지 구성요소로 구성됩니다.

  • Google에서 제공하는 FCM 백엔드
  • 서버 로직이 실행되는 앱 서버 또는 다른 신뢰할 수 있는 서버 환경(예: Google에서 관리하는 Firebase용 Cloud Functions 또는 다른 클라우드 환경)

앱 서버 또는 신뢰할 수 있는 서버 환경에서는 FCM 백엔드에 메시지 요청을 보내고, FCM 백엔드는 사용자 기기에서 실행되는 클라이언트 앱에 메시지를 보냅니다.

신뢰할 수 있는 서버 환경의 요구사항

앱 서버 환경은 다음 기준을 충족해야 합니다.

  • FCM 백엔드에 올바르게 형식이 지정된 메시지 요청을 보낼 수 있습니다.
  • 지수 백오프를 사용하여 요청을 처리하고 다시 보낼 수 있습니다.
  • 서버 승인 사용자 인증 정보와 클라이언트 등록 토큰을 안전하게 저장할 수 있습니다.

Firebase 프로젝트에 필요한 사용자 인증 정보

구현한 FCM 기능에 따라 다음과 같은 Firebase 프로젝트의 사용자 인증 정보가 필요할 수도 있습니다.

사용자 인증 정보 설명
프로젝트 ID Firebase 프로젝트의 고유 식별자로서 FCM v1 HTTP 엔드포인트에 관한 요청에 사용됩니다. 이 값은 Firebase 콘솔 설정 창에서 확인할 수 있습니다.
등록 토큰 각 클라이언트 앱 인스턴스를 식별하는 고유한 토큰 문자열입니다. 단일 기기 및 기기 그룹 메시징에 등록 토큰이 필요합니다. 등록 토큰은 비밀로 유지되어야 한다는 점에 유의하세요.
발신자 ID Firebase 프로젝트를 만들 때 생성되는 고유한 숫자 값으로서 Firebase 콘솔 설정 창의 Cloud Messaging 탭에서 확인할 수 있습니다. 발신자 ID는 프로젝트 번호와 동일합니다. 발신자 ID는 클라이언트 앱에 메시지를 보낼 수 있는 각 발신자를 식별하는 데 사용됩니다.
액세스 토큰 HTTP v1 API에 대한 요청을 승인하는 단기 OAuth 2.0 토큰입니다. 이 토큰은 Firebase 프로젝트에 속한 서비스 계정과 연결됩니다. 액세스 토큰을 만들고 순환하려면 보내기 요청 승인에 설명된 단계를 따르세요.

서버 옵션 선택

FCM 서버와 상호작용하는 방법을 결정해야 합니다. Firebase Admin SDK 또는 FCM HTTP v1 API를 사용할 수 있습니다. 자주 사용되는 프로그래밍 언어를 지원하며 인증 및 승인 처리가 편리한 Firebase Admin SDK를 사용하는 것이 좋습니다.

FCM 서버와 상호작용할 수 있는 옵션은 다음과 같습니다.

Firebase Admin SDK

Firebase Admin SDK는 백엔드 인증을 처리하고 메시지 보내기와 주제 구독 관리를 지원합니다. Firebase Admin SDK를 사용하면 다음 작업을 할 수 있습니다.

  • 개별 기기에 메시지 보내기
  • 하나 이상의 주제와 일치하는 주제 및 조건문에 메시지 보내기
  • 기기 그룹에 메시지 전송
  • 기기에서 주제 구독 및 구독 취소
  • 다양한 타겟 플랫폼에 맞는 메시지 페이로드 구성

Firebase Admin SDK를 설정하려면 서버에 Firebase Admin SDK 추가를 참고하세요. 이미 Firebase 프로젝트가 있다면 SDK 추가부터 시작합니다. 또한 프로젝트의 클라우드 메시징 설정 페이지에서 Firebase Cloud Messaging API (V1)를 사용 설정해야 합니다. 그런 다음 Firebase Admin SDK가 설치되면 로직 작성을 시작하여 전송 요청을 작성할 수 있습니다.

FCM HTTP v1 API:

FCM은 원시 서버 프로토콜을 선호하는 개발자를 위해 FCM HTTP v1 API를 제공합니다.

메시지를 보내려면 앱 서버에서 JSON 키-값 쌍으로 구성된 HTTP 헤더와 HTTP 본문을 포함하는 POST 요청을 만듭니다. 헤더 및 본문 옵션에 관한 자세한 내용은 FCM HTTP v1 API를 사용하여 메시지 보내기를 참고하세요.