NodeJS

[NodeJS] FCM 메세지 보내기 서버 사이드 (firebase-admin, server side)

allempty_sheep 2024. 9. 6. 10:11
반응형

firebase-amin 라이브러리를 이용하여

fcm 메세지를 보내는 api 를 만들어보자.

const express = require('express');
const path = require('path');
const bodyParser = require('body-parser');
const admin = require('firebase-admin');

// Firebase Admin SDK 초기화
const serviceAccount = require('./serviceAccountKey.json');  // Firebase 서비스 계정 JSON 파일

admin.initializeApp({
    credential: admin.credential.cert(serviceAccount),
  });

exports.sendFcm = async (req, res, next) => {
    const { token, title, body } = req.body;
    console.log(token);
    console.log(title);
    console.log(body);
    console.log(serviceAccount);

    const message = {
        token: token,
        notification: {
          title: title,
          body: body,
        },
      };

    try {
        const response = await admin.messaging().send(message);
        console.log('Successfully sent message:', response);
        res.status(200).send('Message sent successfully');
      } catch (error) {
        console.error('Error sending message:', error);
        res.status(500).send('Error sending message');
      }
}

 

serviceAccountKey.json 파일은 Firebase 내 어플리케이션에서 프로젝트 설정으로 들어간다.

 

서비스 계정 - Node.js - 새 비공개 키 생성

해당 파일의 이름을 변경하여 서버에 넣어준다.

 

클라이언트에서 보내는 부분은 아래를 참고하자.

 

[React] FCM 메세지 보내기 요청 to NodeJS ( firebase-admin )

리액트에서 node js로 요정을 하여 fcm 메세지를 보내는 코드를 작성 해보자. import { messaging } from 'lib/firestore/config';import { getToken } from "firebase/messaging";import db from 'lib/firestore';export const API_BASE_URL = pr

allemptysheep.tistory.com