서버 환경 및 FCM
Firebase Cloud Messaging의 서버 측은 다음 두 가지 구성요소로 구성됩니다.
- Google에서 제공하는 FCM 백엔드
- 서버 로직이 실행되는 앱 서버 또는 다른 신뢰할 수 있는 서버 환경(예: Google에서 관리하는 Firebase용 Cloud Functions 또는 다른 클라우드 환경)
앱 서버 또는 신뢰할 수 있는 서버 환경에서는 FCM 백엔드에 메시지 요청을 보내고, FCM 백엔드는 사용자 기기에서 실행되는 클라이언트 앱에 메시지를 보냅니다.
신뢰할 수 있는 서버 환경의 요구사항
앱 서버 환경은 다음 기준을 충족해야 합니다.
- FCM 백엔드에 올바르게 형식이 지정된 메시지 요청을 보낼 수 있습니다.
- 지수 백오프를 사용하여 요청을 처리하고 다시 보낼 수 있습니다.
- 서버 승인 사용자 인증 정보와 클라이언트 등록 토큰을 안전하게 저장할 수 있습니다.
서버 옵션 선택
FCM 서버와 상호작용하는 방법을 결정해야 합니다. Firebase Admin SDK 또는 원시 프로토콜을 사용할 수 있습니다. 자주 사용되는 프로그래밍 언어를 지원하며 인증 및 승인 처리가 편리한 Firebase Admin SDK를 사용하는 것이 좋습니다.
FCM 서버와 상호작용할 수 있는 옵션은 다음과 같습니다.
- Firebase Admin SDK - Node, Java, Python, C#, Go 지원
- FCM HTTP v1 API - 안전한 승인과 유연한 크로스 플랫폼 메시징 기능을 제공하는 REST API(Firebase Admin SDK는 이 프로토콜을 기반으로 하며 모든 고유 이점을 제공함)
FCM의 Firebase Admin SDK
Admin FCM API는 백엔드 인증을 처리하고 메시지 보내기와 주제 구독 관리를 지원합니다. Firebase Admin SDK를 사용하면 다음 작업을 할 수 있습니다.
- 개별 기기에 메시지 보내기
- 주제 및 하나 이상의 일치하는 조건문에 메시지 보내기
- 기기에서 주제 구독 및 구독 취소
- 다양한 타겟 플랫폼에 맞는 메시지 페이로드 구성
Admin Node.js SDK는 기기 그룹에 메시지를 보내는 메서드를 제공합니다.
Firebase Admin SDK를 설정하려면 서버에 Firebase Admin SDK 추가를 참조하세요. 이미 Firebase 프로젝트가 있다면 SDK 추가부터 시작합니다. 또한 프로젝트의 클라우드 메시징 설정 페이지에서 Cloud Messaging API를 사용 설정해야 합니다. 그런 다음 Firebase Admin SDK가 설치되면 로직 작성을 시작하여 전송 요청을 작성할 수 있습니다.
FCM 서버 프로토콜
FCM은 원시 서버 프로토콜을 선호하는 개발자를 위해 FCM HTTP v1 API를 제공합니다.
메시지를 보내려면 앱 서버에서 JSON 키-값 쌍으로 구성된 HTTP 헤더와 HTTP 본문을 포함하는 POST 요청을 만듭니다. 헤더 및 본문의 옵션에 관한 자세한 내용은 앱 서버 보내기 요청 작성을 참조하세요.