diff --git a/src/main/java/ku_rum/backend/domain/alarm/application/AlarmService.java b/src/main/java/ku_rum/backend/domain/alarm/application/AlarmService.java index 30ec7c3e..f8b0eb9a 100644 --- a/src/main/java/ku_rum/backend/domain/alarm/application/AlarmService.java +++ b/src/main/java/ku_rum/backend/domain/alarm/application/AlarmService.java @@ -68,7 +68,7 @@ public void notifyAlarm(AlarmType alarmType, Object object, User user) { return; } FcmDirectDto fcmDirectDto = alarmMessageHandler.getFcmDirectDto(object, user); - fcmService.sendToUsers(fcmDirectDto); + fcmService.sendToUsersIfTokenExists(fcmDirectDto); } @Transactional diff --git a/src/main/java/ku_rum/backend/domain/alarm/application/FcmService.java b/src/main/java/ku_rum/backend/domain/alarm/application/FcmService.java index 7c3c5759..ef05842f 100644 --- a/src/main/java/ku_rum/backend/domain/alarm/application/FcmService.java +++ b/src/main/java/ku_rum/backend/domain/alarm/application/FcmService.java @@ -36,6 +36,18 @@ public class FcmService { private final UserQueryService userQueryService; private final UserService userService; + public void sendToUsersIfTokenExists(FcmDirectDto fcmDirectDto) { + User user = userService.getUser(); + Optional token = userFcmTokenRepository.findByUser(user); + + if (token.isEmpty()) { + log.info("FCM 토큰이 존재하지 않는 유저입니다. userId={}", user.getId()); + return; + } + + sendToUsers(fcmDirectDto); + } + public void sendToUsers(FcmDirectDto request) { List users = userQueryService.getUsersByIds(request.userIds());