✏️ 작성자: 박정훈
📌 작성자의 한마디: "푸시 알림 쫄지마라!"
firebase Cloud Messaging의 약자로 구글 파이어베이스에서 사용하는 클라우드 메시징 서비스입니다! FCM은 메시지와 알림을 모두 무료로 해주더라구요. 그래서 저는 이번에 FCM을 이용해서 푸시알림 서비스를 구현해보겠습니다.
firebase-adminsdk.json
으로 설정했습니다.
yarn add firebase-admin
firebaseKeys
라는 객체를 만들어서 모든 키들을 넣어주었습니다.import admin from 'firebase-admin';
import serviceAccount from '../../../firebase-adminsdk.json';
const firebaseKeys = {
type: serviceAccount.type,
projectId: serviceAccount.project_id,
privateKeyId: serviceAccount.private_key_id,
privateKey: serviceAccount.private_key,
clientEmail: serviceAccount.client_email,
clientId: serviceAccount.client_id,
authUri: serviceAccount.auth_uri,
tokenUri: serviceAccount.token_uri,
authProviderX509CertUrl: serviceAccount.auth_provider_x509_cert_url,
clientC509CertUrl: serviceAccount.client_x509_cert_url,
};
admin.initializeApp({
credential: admin.credential.cert(firebaseKeys),
});
tokens: fcmTokens
을 사용하지 않고 token: fcmToken
형태로 보내시면 됩니다! const message = {
android: {
data: {
title: '김루희 똥방구',
body: '어쩔티비 저쩔티미 우짤레미 저짤레미 눼눼눼눼 아무말도 못하쥬?',
},
},
apns: {
payload: {
aps: {
contentAvailable: true,
alert: {
title: '김루희 똥방구',
body: '어쩔티비 저쩔티미 우짤레미 저짤레미 눼눼눼눼 아무말도 못하쥬?',
},
},
},
},
tokens: fcmTokens,
};
sendMulticast
를 이용했는데, 하나의 디바이스에만 푸시 알림을 보내려면 send
를 이용하시면 됩니다.admin
.messaging()
.sendMulticast(message)
.then(function (res) {
console.log('Successfully sent message: : ', res);
})
.catch(function (err) {
console.log('Error Sending message!!! : ', err);
});
하루남은 앱잼 화이팅입니다!