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 서버는 클라이언트에서 이 토큰을 받아 저장하고 관리합니다.
이 코드를 기반으로 필요한 기능을 확장하면 됩니다. 추가적인 질문이 있으면 말씀해주세요! 😊