FCM(Firebase Cloud Messaging)를 사용하기 위한 Node.js 서버 구성
Express-generator를 사용해 골격 생성하기
2023.04.08 - [Node.js/express] - Express 애플리케이션 생성기
Express 애플리케이션 생성기
Express 애플리케이션 생성기 애플리케이션의 골격을 신속하게 작성하려면 애플리케이션 생성도구인 express를 사용하면 된다. 설치 npm install express-generator -g 애플리케이션 생성 express --view=pug myapp
holy-season.tistory.com
express-generator를 사용해 기본적인 폴더 구조를 생성하자
다음과 같은 명령어를 이용해 myapp이라는 폴더를 생성하고 myapp 폴더로 이동해서 관련된 프로젝트 라이브러리를 다운로드한다
express myapp --view=pug
cd myapp
npm install
Firebase Admin SDK 추가
firebase를 사용하기 위해 firebase admin sdk를 설치해야 한다.
다음 명령어를 이용해서 설치를 한다.
npm install firebase-admin --save
Node.js 서버 구성
app.js에 내용을 추가한다
let firebaseRouter = require('./routes/firebase');
app.use('/firebase', firebaseRouter);
routes 폴더에 firebase.js파일을 생성하고 express.Router()를 사용해 /cloudMessaging/send로 post 요청을 보내면 메시지를 보낼 수 있도록 작성한다
firebase 폴더에는 cloudMessaging.js 파일을 생성하고 파이어베이스를 사용하기 위해 firebase-admin을 require 하고 인증을 수행하도록 작성한다.
var admin = require("firebase-admin");
var serviceAccount = require("path/to/serviceAccountKey.json");
admin.initializeApp({
credential: admin.credential.cert(serviceAccount)
});
serviceAccount에 있는 파일은 파이어베이스 콘솔 프로젝트 설정 > 서비스 계정에서 비공개 키를 생성하면 얻을 수 있다.
파이어베이스를 통해 메시지를 보내는 함수를 하나 작성한다
admin
.messaging()
.send(message)
.then(function (response) {
console.log("Successfully sent message!", response);
})
.catch(function (err) {
console.log("Error Sending Message : ", err);
});
POSTMAN으로 요청 보내기
POSTMAN을 사용해 http://localhost:3000/firebase/cloudMessaging/send로 JSON 요청을 보낸다
notification 요청
{
"token": "cu4d7UZeRCykoW9C065Yw3:APA91bEjv3koJIbaqMxNBYSlithuX6bGGg4iwsquOA8OExy6flg9OgWnk1aCQwUsQhywKOc2-qiA76VfdMmYA8jByks0InVJm4aE3TPS9ojtblMjrRnPi4QYh7LFumZrqVT-SAXjMIMy",
"notification":{
"title":"hello",
"body":"nice to meet you"
}
}
결과
notification 메시지는 앱이 백그라운드로 동작하고 있을 때만 작업표시줄에 알림이 온다.
data 요청
{
"token": "cu4d7UZeRCykoW9C065Yw3:APA91bEjv3koJIbaqMxNBYSlithuX6bGGg4iwsquOA8OExy6flg9OgWnk1aCQwUsQhywKOc2-qiA76VfdMmYA8jByks0InVJm4aE3TPS9ojtblMjrRnPi4QYh7LFumZrqVT-SAXjMIMy",
"data":{
"title":"hello",
"body":"nice to meet you"
}
}
결과
안드로이드 앱에 onMessageReceived를 Override하지 않아서 백그라운드와 포그라운드일 경우 아무런 동작이 없었다.
notification, data 요청
{
"token": "cu4d7UZeRCykoW9C065Yw3:APA91bEjv3koJIbaqMxNBYSlithuX6bGGg4iwsquOA8OExy6flg9OgWnk1aCQwUsQhywKOc2-qiA76VfdMmYA8jByks0InVJm4aE3TPS9ojtblMjrRnPi4QYh7LFumZrqVT-SAXjMIMy",
"notification":{
"title":"hello",
"body":"nice to meet you"
},
"data":{
"holy":"season",
}
}
결과
마찬가지로 안드로이드 앱에 onMessageReceived를 Override 하지 않아서 앱이 포그라운드 상태일 때는 아무런 동작이 없었지만 백그라운드일 경우에는 notfication알림이 작업표시줄에 나타났다.
메시지 요청 정보
FCM 푸시 알림 안드로이드 앱 구현
2023.03.15 - [Android] - Firebase Cloud Messaging(FCM) 푸시 알림 안드로이드 앱 구현
Firebase Cloud Messaging(FCM) 푸시 알림 안드로이드 앱 구현
Firebase Cluod Messaging (FCM) 앱 구현FCM이란?2023.03.13 - [Firebase/Firebase Cloud Messaging] - Firebase Cloud Messaging Firebase Cloud MessagingFirebase 클라우드 메시징(FCM) 메시지를 안정적으로 무료 전송할 수 있는 크로스
holy-season.tistory.com
'Firebase > Firebase Cloud Messaging' 카테고리의 다른 글
메시지 유형 (0) | 2023.04.07 |
---|---|
Firebase Cloud Messaging (0) | 2023.03.13 |