Nextjs에서 FCM을 통한 알림 수신하기

Explanation

오늘은 FCM(Firebase Cloud Messaging)을 사용해서 웹에서 알림을 수신하는 방법을 적어보려합니다~

파이어베이스 프로젝트는 생성 되었다고 가정하고..

1. 파이어베이스 프로젝트 설정

왼쪽에 톱니바퀴 아이콘을 눌러서 ‘프로젝트 설정’ 페이지로 이동 후 스크롤을 내려서 </> 아이콘을 선택해서 웹 플랫폼을 선택해 줍니다.

그리고 적당한 이름을 작성해주시고 ‘앱 등록’을 합니다.

그럼 위와 같이 코드들이 나오는데, ‘firebaseConfig’ 값들을 이따가 코드를 작성할때 해당 설정값에 넣어줄 거에요.

다음으로 ‘프로젝트 설정’ 페이지 상단에 ‘클라우드 메시징’ 탭으로 이동한 후 아래로 스크롤을 내려서

‘Generate key pair’ 버튼을 눌러서 인증서 키 값을 만들어 줍니다.

이 키값은 이따가 토큰 요청하는 코드에 사용할 거에요.

2. nextjs에서 알림 수신 설정하기

테스트에 사용된 코드는 https://github.com/falsy/blog-post-example/tree/master/next-js-fcm에서 모두 확인하실 수 있습니다.
(저는 간단하게 next, react, firebase 를 설치하였습니다.)

우선 nextjs 사용하니까 패키지 가장 밖에 public 디렉토리를 만들어 주시고 아래와 같이 ‘firebase-messaging-sw.js’ 파일을 추가해 줍니다.

그리고

저는 간단하게, 이렇게 코드를 구성하였습니다~

3. 알림 테스트

위와 같이 코드를 다 작성이 되면 실행한 후 ‘개발자도구’ > ‘콘솔’로 이동해서
로그로 출력하게 했던 토큰값을 복사해 둡니다.

다시 파이어베이스로 돌아가서 ‘참여’ 매뉴에 있는 ‘messaging’을 선택합니다.

위와 같이 ‘첫 번째 캠페인 만들기’ 버튼을 선택합니다.

‘Firebase 알림 메시지’를 선택한 후 ‘만들기’ 버튼을 선택합니다.

적당히 ‘알림 제목’과 ‘알림 텍스트’를 입력하시고 오른쪽에 ‘테스트 메시지 전송’ 버튼을 눌러줍니다.

아까 콘솔창에 출력시켜서 복사해두었던 토큰 값을 넣어준 후 ‘+’ 버튼을 누르고, 체크한 후
테스트 버튼을 누르면!

짜잔, 알림이 뜨는 것을 확인 할 수 있습니다.

4. 참조

* https://firebase.google.com/docs/cloud-messaging/js/client?hl=ko
* https://anywaydevlog.tistory.com/93
* https://www.techomoro.com/implement-push-notification-in-next-js-with-firebase-cloud-messaging/