안녕하세요 세차왕 개발팀 도미닉입니다.
오늘은 노드 서버에서 fcm 을 사용하는 방법을 공유하고자 합니다.
우선 iOS와 안드로이드에서 fcm token을 생성해서 DB에 저장이 되어있어야 합니다.
그 부분의 설명은 생략하도록 하겠습니다.
이제 member 별로 저장되어있는 fcm token을 이용해서 고객에게 푸시를 보내는 방법을 설명하겠습니다.
npm install firebase-admin --save
프로젝트의 톱니바퀴 버튼을 눌러 <프로젝트 설정> 을 들어갑니다.
<서비스 계정> 을 들어가서 Node.js 를 선택합니다.
아래에 <새 비공개 키 생성>을 클릭해서 키 파일을 다운로드 받습니다.
const admin = require('firebase-admin');
const serviceAccount = require('./받은 키파일.json');
const fcm_admin = admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "https://planar-beach-791.firebaseio.com"
});
const registrationToken = 'd1qVdJv6zzk:APA91bGks-3ldvnjja3CSxmQik8nblTzGjReN_JBuaxsV4toJkMwXWFbUBpc-W_WfJOIM3sRyN_n2g3XDy75D96QSX8fcp16DLqUHgo4pnP8i7LyF_WQox26omIwaRLpB2Oep31z1LOH';
const message = {
notification: {
title: '시범 데이터 발송',
body: '클라우드 메시지 전송이 잘 되는지 확인하기 위한, 메시지 입니다.'
},
token: registrationToken
};
// Send a message to the device corresponding to the provided
// registration token.
fcm_admin.messaging().send(message)
.then((response) => {
// Response is a message ID string.
console.log('Successfully sent message:', response);
})
.catch((error) => {
console.log('Error sending message:', error);
});
위와 같이 원하는 registrationToken 에 fcm 토큰을 넣고 전송하면 정상적으로 푸시가 전송이 됩니다.
참고 :
https://nicgoon.tistory.com/196
https://firebase.google.com/docs/cloud-messaging/send-message#node.js
https://firebase.google.com/docs/admin/setup