[javascript] Firebase에서 FCM 메시지를 보내는 방법
Firebase에서 FCM 메시지를 보내는 방법은 크게 두 가지로 나눌 수 있습니다. 하나는 Firebase Admin SDK를 사용하여 서버에서 메시지를 보내는 방법이고, 다른 하나는 Firebase Cloud Messaging API를 직접 호출하여 메시지를 보내는 방법입니다. 각각의 방법에 대해 설명하겠습니다.
-
Firebase Admin SDK를 사용하여 서버에서 메시지 보내기:
이 방법은 Firebase Admin SDK를 사용하여 서버 측에서 FCM 메시지를 보내는 것입니다. 이 방법을 사용하려면 서버에서 Firebase Admin SDK를 초기화해야 합니다. Node.js 예시 코드를 사용하여 설명하겠습니다.
const admin = require('firebase-admin');
// Firebase Admin SDK를 초기화합니다.
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
// 서비스 계정 JSON 키 파일을 제공합니다.
});
// 메시지 페이로드를 생성합니다.
const message = {
notification: {
title: '알림 제목',
body: '알림 내용',
},
token: 'FCM_TOKEN',
};
// FCM을 통해 메시지를 보냅니다.
admin.messaging().send(message)
.then((response) => {
console.log('Successfully sent message:', response);
})
.catch((error) => {
console.log('Error sending message:', error);
});
위의 예시 코드에서 `serviceAccount`는 Firebase Admin SDK에 대한 인증 정보를 제공하기 위한 서비스 계정의 JSON 키 파일입니다. Firebase 콘솔의 "서비스 계정" 탭에서 새 서비스 계정을 생성하고 해당 JSON 키 파일을 얻을 수 있습니다.
`message` 객체를 원하는대로 수정하여 원하는 페이로드를 설정할 수 있습니다. 메시지 수신 대상인 디바이스의 FCM 토큰은 `token` 속성에 지정하면 됩니다.
-
Firebase Cloud Messaging API를 직접 호출하여 메시지 보내기:
이 방법은 HTTP 요청을 사용하여 Firebase Cloud Messaging API를 직접 호출하여 FCM 메시지를 보내는 것입니다. 다음은 cURL을 사용한 예시 요청입니다:
curl -X POST -H "Authorization: Bearer YOUR_SERVER_KEY" -H "Content-Type: application/json" -d '{
"notification": {
"title": "알림 제목",
"body": "알림 내용"
},
"token": "FCM_TOKEN"
}' "https://fcm.googleapis.com/fcm/send"
위의 예시 요청에서 `YOUR_SERVER_KEY`는 Firebase 콘솔에서 확인한 서버 키입니다. `FCM_TOKEN`은 메시지를 받을 디바이스의 FCM 토큰입니다. 요청의 `notification` 객체를 원하는대로 수정하여 원하는 페이로드를 설정할 수 있습니다.
이 방법을 사용할 때는 요청을 보내는 클라이언트에서 액세스 토큰을 안전하게 보호해야 합니다.
이러한 방법 중 하나를 선택하여 FCM 메시지를 보낼 수 있습니다. 어떤 방법을 선택할지는 사용 사례와 환경에 따라 달라집니다.