FCM 토큰 사용하여 사용자에게 push 알림 보내기 (2) - 서버에서는 FCM 백엔드로 어떻게 요청하는데 ?

like0·2022년 4월 7일
0

Firebase 클라우드 메시징의 서버측 구성요소는 2가지이다.

  1. google에서 제공하는 FCM

  2. 서버 로직이 실행되는 앱 서버 또는 다른 신뢰할 수 있는 서버환경

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

앱 서버 또는 신뢰할 수 있는 서버 환경 (즉, 개발 중인 백엔드) → FCM 백엔드 (google에서 제공) → 클라이언트 앱 (추후 개발이 완성되면 나오는 앱)

즉, 개발중인 백엔드에서 push 보내려는 기기의 정보와 push 내용을 담아서 FCM을 사용하면 FCM 백엔드가 알아서 알림을 보내주는 것으로 이해했다.

앱 서버 또는 신뢰할 수 있는 서버환경은 FCM과 어떻게 상호작용 하는가 ?

  • Firebase Admin SDK

  • 원시 프로토콜 (FCM HTTP v1 API, 기존 HTTP 프로토콜, XMPP 서버 프로토콜)

의 방법으로 상호작용하며, 그 중에서도 Firebase Admin SDK를 사용해보려 한다.

1. Firebase Admin SDK 추가 기본요건

  • 서버 앱이 있는지 확인한다. (나는 Node.js 환경에서 구현)
  • 사용하는 Admin SDK에 따라 서버에서 다음을 실행해야함

Admin Node.js SDK - Node.js 12 이상 (Node.js에서 실행함)
Admin 자바 SDK — 자바 7 이상(자바 8 이상 권장)
자바 7은 지원 중단되었습니다.
Admin Python SDK — Python 3.6 이상
Admin Go SDK — Go 1.11 이상
Admin .NET SDK — .NET Framework 4.5 이상 또는 .Net Core 1.5 이상

2. Firebase 프로젝트 및 서비스 계정 설정

SDK를 사용하기 위해서는 다음이 필요하다.

  • Firebase 프로젝트
  • Firebase와 통신할 Firebase Admin SDK 서비스 계정
  • 서비스 계정의 사용자 인증 정보가 포함된 구성 파일 (생성된 프로젝트를 선택하고 프로젝트 설정 -> 서비스 계정 -> 새 비공개 키 생성 버튼을 통해 json파일 다운받기)

3. SDK 추가

  • 새 프로젝트를 설저할 때는 원하는 언어의 SDK를 설치해야 한다.
    Firebase Admin Node.js SDK는 npm을 제공된다. 해당 명령어를 통해 firebase-admin npm 패키지를 설치한다.
$ npm install firebase-admin --save

4. SDK 초기화

Firebase 프로젝트를 만든 후에는 서비스 계정 파일Google 애플리케이션 기본 사용자 인증 정보를 결합한 승인 방식을 사용하여 SDK를 초기화할 수 있다.

  • 서비스 계정을 통한 승인 시 2가지 방법을 사용하여 애플리케이션에 사용자 인증 정보를 제공할 수 잇다.

✔️ GOOGLE_APPLICATION_CREDENTIALS 환경 변수를 설정

export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/service-account-file.json"

✔️ 코드에서 서비스 계정 키 경로를 명시적으로 전달

var serviceAccount = require("path/to/serviceAccountKey.json");

SDK 초기화는 다음과 같이 할 수 있다.

admin.initializeApp({
  credential: admin.credential.cert(serviceAccount)
});

참고링크

profile
배우고 성장하는 개발자가 되기!

0개의 댓글