React에서 FCM 사용
1121
작성한 질문수 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
[과제] 연습문제 쿼리 작성했습니다!
0
7
1
클로드 채팅에서 코드로 넘어가기
0
12
1
Context API vs Zustand 그리고 Auth
0
17
2
110강부터 따라가기가 힘듭니다...
0
28
1
커서에서 붙여넣기
0
14
1
깃허브 사용시 폴더경로 관련질문
0
14
1
[reducer] 기능별 폴더 구조 설계/ 파일 분리로 유지 보수 가능한 아키텍처 구축
0
13
2
순수 함수 / 순수 컴포넌트
0
14
1
스니펫이 이상해요
0
26
2
/output-style 명령어는 폐기 되었다고 나오네요.
0
34
1
프롬프트 작성시 html, css, javascript
0
28
1
Editor Component의 최적화 불가능 이슈
0
36
2
Cursor 창이 수업 내용과 달라요.
0
30
2
Supabase MCP 관련 질문입니다
0
30
1
에러핸들링- rootlayout에 관하여
0
27
2
useCallback ⊂ useMemo
0
33
2
강의 내용 누락
0
24
0
클로드 로그인 후 승인창이 안떠요
0
33
1
깃허브 저장소를 어디에 첨부하셨나요?
1
34
1
61강 claude.local.md 변경사항 관련 질문
0
39
3
스타터 저장소
1
37
1
라이브러리 설치 질문
0
33
2
linter 질문
0
38
2
github
0
41
2






