Node.js Firebase Message Send

Firebase Cloud Messaging(FCM)을 사용하여 Node.js에서 메시지를 전송하려면 Firebase Admin SDK를 설정하고 send 메서드를 사용해야 합니다. 아래는 FCM 메시지 전송을 위한 단계와 코드 예제입니다.


1. Firebase Admin SDK 설정

  1. Firebase 콘솔에서 프로젝트 생성.
  2. 서비스 계정 키(JSON 파일)를 다운로드.
  3. 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 서버는 클라이언트에서 이 토큰을 받아 저장하고 관리합니다.


이 코드를 기반으로 필요한 기능을 확장하면 됩니다. 추가적인 질문이 있으면 말씀해주세요! 😊

Leave a Reply

Your email address will not be published. Required fields are marked *