최근 만든 앱에 푸쉬 기능을 추가할 일이 생겨 Spring Boot로 구축된 서버에 Firebase를 적용했습니다.
이번 포스팅에서는 Firebase Admin SDK를 이용해 푸쉬를 보내는 방법을 알아보겠습니다. 이외에도 FCM를 이용한 글이 있으니 참고해 주세요.
Node를 이용한 FCM Push
Flutter FCM 설정하기
※ 테스트 환경
- Spring Boot 2.7.5
- JDK 1.8
- Gradle
1. Firebase Admin SDK 다운로드
파이어베이스 접속 후 Admin SDK를 다운받습니다. 다운받은 파일을 resousrces 디렉토리에 저장합니다.
2. 의존성 추가
푸쉬를 위해 firebase-admin을 추가합니다.
build.gradle
3. Firebase 설정
sdk를 이용해 파이어베이스를 초기화합니다.
4. 메세지 생성
푸쉬를 통해 전달할 메세지를 생성합니다.
단일 메세지 구성과 다중 메세지 구성 모두 가능합니다. 다중 메세지 구성시 MulticastMessage를 사용합니다.
paramMap을 통해 구성된 메세지는 모바일앱에서 RemoteMessage를 통해 확인할 수 있습니다.
5. 메세지 발송
이제 발송 메소드를 만들어 초기화 -> 메세지 생성 -> 푸쉬 발송 순으로 실행합니다.
MessageDto는 아래와 같이 정의되어 있습니다.
6. 테스트
테스트 컨트롤러를 추가했고, 푸쉬 토큰을 전달해 실행해보겠습니다.
푸쉬 토큰은 앱에서 FirebaseMessaging을 통해 기기 고유의 토큰을 생성해야 합니다.
Postman을 통해 테스트해보면 푸쉬가 잘 전송되는 것을 확인할 수 있습니다.
전체 코드는 GitHub에서 확인하실 수 있습니다.
예제에 사용되지 않은 다중 푸쉬 메소드도 포함되어 있으니 참고해 주세요.