[React Native] FireBase Cloud Messaging

공효은·2021년 8월 17일
0

reactNative

목록 보기
3/9

Firebase 클라우드 메시징 info

작성목적은 공부를 위해서! 출처는 https://firebase.google.com/docs/cloud-messaging 공식 홈페이지

✍️ Firebase 클라우드 메시징(FCM)은 무료로 메시지를 안정적으로 전송할 수 있는 교차 플랫폼 메시징 솔루션

주요기능

작동원리

  1. Firebase 용 Cloud Functions 또는 앱 서버와 같이 메시지를 작성, 타겟팅, 전송 할 수 있는 신뢰할 수 있는 환경
  2. 해당 플랫폼별 전송 서비스를 통해 메시지를 수신하는 IOS, Android또는 웹(자바스크립트) 클라이언트 앱
  • Firebase Admin SDK 또는 FCM 서버 프로토콜을 통해 메시지를 보낼 수 있음
  • 알림 작성기를 사용하면 기본 제공되는 강력한 타겟팅 및 분석 기능이나 커스텀 (가져온 세그먼트) 를 사용하여 마케팅 또는 참여 메시지를 테스트하고 전송할 수 있음

구현 경로

다음 단계

  1. Android 또는 ios 빠른시작 샘플을 실행. 이 샘플을 통해 코드를 실행하고 검토하여 Firebase 콘솔을 사용해 단일 기기에 테스트 메시지를 보낼 수 있음
  2. Android 또는 ios 가이드를 진행
  3. Firebase 클라우드 메시징을 Android, ios 또는 웹 앱에 추가
  4. 메시지 요청을 작성하고 전송하는 신뢰할 수 있는 환경을 설정. Admin SDK를 사용하여 전송 로직을 작성하고 Google에서 관리하는 Firebase용 Cloud Functions 또는 다른 클라우드 환경에 해당 코드를 쉽게 배포할 수 있음. 또는 FCM 서버 프로토콜을 사용하여 서버 개발을 수행할 수 있음
  5. 데이터 페이로드 전송, 메시지 우선순위 설정 및 FCM에서 제공하는 기타 메시징 옵션 에 대해 자시히 알아보기
  6. 기존 Android 또는 ios GCM 구현을 마이크레이션하여 Firebase 클라우드 메시징을 사용

FCM 아키텍처 개요

FCM은 메시지를 빌드, 전송 수신하는 다음 구성요소 집합을 사용

  1. 메시지 요청을 작성하거나 구현하는 도구, 알림 작성기는 알림 요청을 만들기 위한 GUI 기반 옵션을 제공(테스트할때 사용)
    모든 메시지 유형을 완벽하게 자동화하고 지원하려면 Firebase Admin SDK 또는 FCM 서버 프로토콜을 지원하는 신뢰할 수 있는 서버 환경에서 메시지 요청을 구현해야한다.
    이 환경은 Firebase용 Cloud Functions, App Engine 또는 자체 앱 서버일 수 있다.

  2. FCM 백앤드는 다른 여러 기능 중에서 메시지 요청을 수락하고, 주제를 통해 메시지를 확장하고, 메시지 ID와 같은 메시지 메타 데이터를 생성함.

  3. 기기로 타겟팅 된 메시지를 라우팅하고, 메시지 전송을 처리하고, 필요한 경우 플랫폼별 구성을 적용하는 플랫폼 수준의 전송 레이어 다음을 포함함

    • Google Play 서비스를 사용하는 Android 기기용 Anroid 전송 레이어(ATL)
    • ios 기기용 Apple 푸시 알림 서비스(APN)
    • 웹 앱용 웹 푸시 프로토콜
  4. 알림이 표시되거나 앱의 포그라운드/백그라운드 상태 및 관련 애플리케이션 로직에 따라 메시지가 처리되는 사용자 기기의 FCM SDK입니다.

수명 주기 흐름

  • FCM에서 메시지를 수신하도록 기기를 등록.
    클라이언트 앱의 인스턴스가 메시지를 수신하도록 등록하여 앱 인스턴스를 고유하게 식별하는 등록 토큰을 받음
  • 다운스트림 메시지 전송 및 수신
    - 메시지 보내기 앱 서버가 클라이언트 앱에 메시지를 보냄
    1. 메시지는 알림 작성기 또는 신뢰할 수 있는 환경에서 작성되며 메시지 요청이 FCM 백엔드로 전송
    2. FCN 벡엔드는 메시지 요청을 수신하고 메시지 ID와 기타 메타 데이터를 생성하여 플랫폼별 전송 레이어로 보냄
    3. 기기가 온라인 상태이면 메시지가 플랫폼별 전송레이어를 통해 기기로 전송됨
    4. 기기에서 클라이언트 앱이 메시지 또는 알림을 수신
profile
잼나게 코딩하면서 살고 싶어요 ^O^/

0개의 댓글