React에서 FCM 사용
1126
작성한 질문수 1
안녕하세요 !
FCM으로 푸시 기능을 짜다가,, 도저히 모르겠어서 글 남깁니다 ..!
문제는 콘솔에는 푸시 알림이 왔다는 게 찍히는데,
푸시가 보이지 않습니다 ... ㅠㅠ
[ 폴더 구조 ]
[ firebase-messaging-sw.js ]
self.addEventListener('push', function (e) {
console.log('push: ', e.data.json())
if (!e.data.json()) return
const resultData = e.data.json().notification
const notificationTitle = resultData.title
const notificationOptions = {
body: resultData.body,
icon: resultData.image,
tag: resultData.tag,
...resultData
}
console.log('push: ', { resultData, notificationTitle, notificationOptions })
registration.showNotification(notificationTitle, notificationOptions)
})
[ messaging_init_in_sw.js ]
import { initializeApp } from 'firebase/app'
import { getMessaging, getToken } from 'firebase/messaging'
const firebaseConfig = {
apiKey: process.env.REACT_APP_FIREBASE_API_KEY,
authDomain: process.env.REACT_APP_FIREBASE_AUTH_DOMAIN,
projectId: process.env.REACT_APP_FIREBASE_PROJECT_ID,
storageBucket: process.env.REACT_APP_FIREBASE_STORAGE_BUCKET,
messagingSenderId: process.env.REACT_APP_FIREBASE_MESSAGING_SENDER_ID,
appId: process.env.REACT_APP_FIREBASE_APP_ID,
measurementId: process.env.REACT_APP_FIREBASE_MEASUREMENT_ID
}
function requestPermission() {
console.log('푸시 허가 받는 중 ...')
void Notification.requestPermission().then((permission) => {
if (permission === 'granted') {
console.log('푸시 알림이 허용되었습니다.')
} else {
console.log('푸시 알림이 허용되지 않았습니다')
}
})
const app = initializeApp(firebaseConfig)
const messaging = getMessaging(app)
void getToken(messaging, { vapidKey: process.env.REACT_APP_FIREBASE_VAPID_KEY }).then((token) => {
if (token.length > 0) {
console.log('푸시 토큰 : ', token)
} else {
console.log('푸시 토큰 실패 !')
}
})
}
requestPermission()
토큰은 제대로 잘 받아와지는데,,, 혹시 서비스워커 코드에 문제가 있는 걸까요 ..?
답변 1
tsconfig.app.json 파일 설정(경로 별칭 옵션) 관련 질문입니다.
0
12
1
output style이 안나와요
0
15
1
강의제목에 10/15일 삭제라고 나와있는데,
0
27
1
CRA ? 질문입니다
0
24
1
교제 노션 복제 방법 문의
0
21
1
output style은 뭘선택하나요?
0
25
0
agent team vs shrimp task manager
0
22
1
rules 질문
0
31
1
[과제]1-9 피벗 테이블 만들어보기
0
50
2
cnt수를 구할 때 왜 user_pseudo_id 를 사용하나요?
0
54
2
eslint 플러그인 설정
0
54
2
onSettled 질문드립니다.
0
55
2
shrimp task 관련 질문
0
50
2
계획 단계
0
45
2
저는 클로드 로고가 안떠 있어요 ㅜㅜ
0
46
2
terminl을 사용해서 cursor 명령어 입력하는데 커서가 실행되다가 자동으로 꺼집니다 왜그럴까요?
0
40
2
커서가 강의화면이랑 달라요!
0
41
2
감정일기장 다이어리 필터 적용할때 컨텍스트를 Home에서 가져오는 특별한 이유가 궁금합니다.
0
51
2
강사님 플랜보드 보면서 느끼는건데
0
54
2
tdd green agent 에서 문의 드립니다.
0
46
2
강의 설명 중에 헷갈리는 것이 있네요
0
47
1
22강 [토큰 저장] 질문
0
51
1
클로드 사용 오류
0
71
3
음성불량
0
44
1






