Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FEAT] Fcm 푸시 알림 서비스 구현 #216

Merged
merged 13 commits into from
May 20, 2024
Merged

[FEAT] Fcm 푸시 알림 서비스 구현 #216

merged 13 commits into from
May 20, 2024

Conversation

Hong0329
Copy link
Contributor

@Hong0329 Hong0329 commented May 19, 2024

📣 Related Issue

📝 Summary

  • Member테이블에 ifPushAlarmAllowed(Boolean)와 pushAlarmToken(String)항목 추가
  • MemberProfile수정 API에 푸시알림 관련 항목들 변경 가능하게 코드 추가
  • FCM관련 gradle종속성 추가
  • Firebase 프로젝트의 서비스 계정 키 resources/~위치에 추가
  • 해당 값은 gitignore후에 secret값으로 생성 예정
  • FCMMessageDto생성
  • FCMService코드 구현
  • 작성 게시물에 답글 달릴 시에 푸시 알림 발송하도록 코드 추가
  • 작성 게시물에 좋아요 달릴 시에 푸시 알림 발송하도록 코드 추가
  • 작성 답글에 좋아요 달릴 시에 푸시 알림 발송하도록 코드 추가
  • 작성 게시물이 인기글 당선 시에 푸시 알림 발송하도록 코드 추가
  • 유저 탈퇴 시에 FCM과 관련된 값들도 이에 맞게 수정되게 코드 수정
  • 유저가 로그인할 때 푸시알림 동의 여부값 전달하게 코드 수정
  • CI-dev와 CD-dev스크립트 수정 => resources/~위치에 firebase서비스 계정 키 생성하는 로직 추가
  • 위의 서비스 계정 키와 관련하여 dev와 prod를 구분해야할 것 같기 때문에 API테스트까지 완료되면 새로운 firebase프로젝트 생성 후에 secret키로 관리 예정/ CI와 CD의 스크립트 코드는 같지만 해당 값을 불러오는 secret키를 구분할 예정
  • 로그인과 회원 가입 관련 API명세서 수정
  • 프로필 수정 API 명세서 수정
  • FCM푸시 알림 관련 API 명세서 작성

🙏 Question & PR point

📬 Postman

  • 안드와 아요가 개발이 완료되면 테스트 후에 첨부하겠습니다.

Comment on lines 182 to 202
if(targetMember.isPushAlarmAllowed()) {
String FcmMessageTitle = triggerMember.getNickname() + "님이" + targetMember.getNickname() + "님의 답글을 좋아합니다.";

FcmMessageDto commentFcmMessage = FcmMessageDto.builder()
.validateOnly(false)
.message(FcmMessageDto.Message.builder()
.notificationDetails(FcmMessageDto.NotificationDetails.builder()
.title(FcmMessageTitle)
.body("")
.build())
.token(targetMember.getFcmToken())
.data(FcmMessageDto.Data.builder()
.name("commentLike")
.description("답글 좋아요 푸시 알림")
.relateContentId(contentId)
.build())
.build())
.build();

fcmService.sendMessage(commentFcmMessage);
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

어우..빌드업이 좋네요

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

엇 이 리뷰를 통해서 제가 실수한 부분을 찾았습니다...ㅋㅋㅋㅋ수정해서 커밋하겠습니다. 감사합니다! 복붙해서 썻더니 다른 곳도 commentFcmMessage로 명명해놨네요.. 머쓱

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ㅋㅋㅋㅋㅋ오! 전혀 몰랐는데 예리했던척 성공~
완성한 코드도 다시보는 리드? ㄷㄷ 폼미쳤다

Copy link
Member

@bo-ram-bo-ram bo-ram-bo-ram left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

고생하셨습니다!!! 한가지 궁금한점은 명세서에 isPushAlarmAllowed가 null인경우도 있더라구요?! 처음 회원가입하게되면 우선 null로 처리한 다음 응답여부에 따라 true/false로 바뀌는 로직인지 궁금합니다!

@Hong0329
Copy link
Contributor Author

고생하셨습니다!!! 한가지 궁금한점은 명세서에 isPushAlarmAllowed가 null인경우도 있더라구요?! 처음 회원가입하게되면 우선 null로 처리한 다음 응답여부에 따라 true/false로 바뀌는 로직인지 궁금합니다!

맞습니다!! 클라 측에서 푸시알림 수신 동의 여부를 회원가입이 끝난 후에 선택하기 때문에 일단은 null로 설정했습니다.

@Hong0329 Hong0329 merged commit defcad9 into develop May 20, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[FEAT] fcm알림 서비스 구현
2 participants