반응형
1. serviceAccountKey 발급받기
firebase 프로젝트 콘솔 > 프로젝트 설정 > 서비스 계정 > '새 비공개 키 생성' 버튼 클릭
다운받은 json파일을 Node.js 프로젝트 내에 넣어준다.
2. FCM 연결하기
app.js
// app.js
import fcmConnection from './fcm';
fcmConnection();
fcm.js
위 1번에서 발급받은 json 파일을 import 해준다.
아래 코드에서는 import serviceAccount from '../firebase-admin.json'; 부분이다.
// fcm.js
import * as admin from 'firebase-admin';
import serviceAccount from '../firebase-admin.json';
const connect = async () => {
let firebase;
try {
if (admin.apps.length === 0) {
firebase = admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
});
console.log('Connect FCM: Initialize FCM SDK');
} else {
firebase = admin.app();
console.log('Connect FCM');
}
} catch (error) {
console.log('FCM connection error:: ', error.message);
}
};
export default connect;
3. API 작성하기
import { Request, Response } from 'express';
import admin from 'firebase-admin';
const sendNotification = async (req: Request, res: Response) => {
try {
const { title, body, token } = req.body;
await admin.messaging().send({
token: token,
android: {
data: {
title,
body,
},
},
apns: {
payload: {
aps: {
contentAvailable: true,
sound: 'default',
alert: {
title,
body,
},
},
},
},
});
res.status(200).json({ message: 'Successfully sent notifications!' });
} catch (err: any) {
res
.status(err.status || 500)
.json({ message: err.message || 'Something went wrong!' });
}
};
작성한 코드를 호출하는 router를 만든 후에 API를 날려보면 200 OK 응답과 함께 정상적으로 fcm이 작동된 것을 확인할 수 있다.
위에서 날린 API 호출에 대해서 모바일 기기에서 푸시 알림이 정상적으로 온 것을 확인할 수 있다.
React Native에서 FCM으로 푸시알림을 받는 코드는 아래 글에 있다.
https://pocket-dev.tistory.com/41
[React Native] ios FCM으로 푸시알림 적용하기(3) - 연동 테스트
* 참고: ios는 FCM 테스트가 에뮬레이터에서 안되고, 실제 기기에서만 확인 가능하다.ios 실제 기기(아이폰)에서 프로젝트를 구동하는 방법은 다음 포스팅을 참고하면 된다: https://pocket-dev.tistory.com
pocket-dev.tistory.com
'Node.js' 카테고리의 다른 글
[Node.js] FCM으로 푸시 메시지 전송(단일, 여러개) (0) | 2024.08.21 |
---|---|
[Node.js] PM2로 프로젝트 구동 시 개발/상용 환경 나누기 (0) | 2024.07.18 |
[Cheerio] 현재 태그의 텍스트만 가져오기 (0) | 2024.06.19 |
[Node.js] axios, cheerio로 크롤링 시 한글 깨짐 (0) | 2024.06.13 |
[Node.js] nodemon 설치하고 typescript 적용하기 (0) | 2024.06.12 |