Firebase Cloud Messaging(FCM)을 사용하여 Node.js에서 메시지를 전송하려면 Firebase Admin SDK를 설정하고 send 메서드를 사용해야 합니다. 아래는 FCM 메시지 전송을 위한 단계와 코드 예제입니다.
1. Firebase Admin SDK 설정
- Firebase 콘솔에서 프로젝트 생성.
- 서비스 계정 키(JSON 파일)를 다운로드.
- Firebase Admin SDK를 설치:
npm install firebase-admin
2. Node.js 코드 예제
// Firebase Admin SDK 초기화
const admin = require('firebase-admin');
// Firebase 서비스 계정 키 JSON 파일 경로
const serviceAccount = require('./path/to/your-service-account-key.json');
// Firebase 초기화
admin.initializeApp({
credential: admin.credential.cert(serviceAccount)
});
// 메시지 전송 함수
const sendMessage = async () => {
// 메시지 내용 설정
const message = {
notification: {
title: '안녕하세요!',
body: '이것은 Firebase 클라우드 메시지입니다.'
},
token: '<DEVICE_TOKEN>' // 사용자 기기의 FCM 토큰
};
try {
// 메시지 전송
const response = await admin.messaging().send(message);
console.log('메시지 전송 성공:', response);
} catch (error) {
console.error('메시지 전송 실패:', error);
}
};
// 메시지 전송 실행
sendMessage();
3. 코드 설명
notification: 푸시 알림의 제목과 본문.token: 특정 디바이스의 FCM 토큰. (앱 클라이언트에서 FCM 토큰을 가져와야 합니다.)admin.messaging().send(message): FCM 메시지를 전송합니다.
4. 추가 옵션
데이터 메시지 전송: 데이터 메시지는 알림 외에도 커스텀 데이터를 포함할 수 있습니다.
const message = {
data: {
key1: 'value1',
key2: 'value2'
},
token: '<DEVICE_TOKEN>'
};
여러 기기로 메시지 전송:
const message = {
notification: {
title: '그룹 메시지',
body: '여러 기기로 전송됩니다.'
},
tokens: ['<TOKEN_1>', '<TOKEN_2>', '<TOKEN_3>'] // 여러 FCM 토큰
};
const response = await admin.messaging().sendMulticast(message);
console.log('전송 성공:', response.successCount);
console.log('전송 실패:', response.failureCount);
5. FCM 토큰 받기 (클라이언트 측)
FCM 토큰은 클라이언트 앱(Android, iOS, 웹)에서 Firebase Messaging SDK를 사용하여 가져올 수 있습니다. Node.js 서버는 클라이언트에서 이 토큰을 받아 저장하고 관리합니다.
이 코드를 기반으로 필요한 기능을 확장하면 됩니다. 추가적인 질문이 있으면 말씀해주세요! 😊
