google에서 제공하는 FCM
서버 로직이 실행되는 앱 서버 또는 다른 신뢰할 수 있는 서버환경
앱 서버 또는 신뢰할 수 있는 서버 환경에서는 FCM 백엔드에 메시지 요청을 보내고, FCM 백엔드는 사용자 기기에서 실행되는 클라이언트 앱에 메시지를 보낸다.
앱 서버 또는 신뢰할 수 있는 서버 환경 (즉, 개발 중인 백엔드) → FCM 백엔드 (google에서 제공) → 클라이언트 앱 (추후 개발이 완성되면 나오는 앱)
즉, 개발중인 백엔드에서 push 보내려는 기기의 정보와 push 내용을 담아서 FCM을 사용하면 FCM 백엔드가 알아서 알림을 보내주는 것으로 이해했다.
Firebase Admin SDK
원시 프로토콜 (FCM HTTP v1 API, 기존 HTTP 프로토콜, XMPP 서버 프로토콜)
의 방법으로 상호작용하며, 그 중에서도 Firebase 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 이상
SDK를 사용하기 위해서는 다음이 필요하다.
$ npm install firebase-admin --save
Firebase 프로젝트를 만든 후에는 서비스 계정 파일과 Google 애플리케이션 기본 사용자 인증 정보를 결합한 승인 방식을 사용하여 SDK를 초기화할 수 있다.
✔️ 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)
});