이슈 내용
FCM deprecated API 이슈를 위해 FCM Admin SDK로 기능을 변경하였으나, AOS 혹은 IOS에서 푸시 메시지가 미수신되고, 푸시 메지시를 눌렀을 때 연동되도록 의도하는 주소지로 이동이 안되는 이슈가 발생하였다.
이슈 파악
개발기간이 짧아, 시간을 지체시킬 수 없어 FCM은 모바일에서 관리하고 있으니, 모바일 팀측에 아래와 같은 사항을 곧바로 문의하였다.
* 기본 전제 : 현재 백엔드 팀에서는 FCM Admin SDK를 사용하여 요청을 전달할 예정임
1. 보내는 파라미터에 따라, AOS에서는 수신이 되나 IOS에서는 수신이 안되는 발생하고 있음
2. AOS 및 IOS에서, 유저가 푸시 메시지를 클릭했을 때 의도하는 페이지로 연동되지 않고 있음
=> 어떤 파라미터에 어떤 값을 줘야하는 특정 조건이 별도로 있는 걸까요?
문의 결과
우선 공식문서 내용은 아래와 같다.
https://firebase.google.com/docs/reference/fcm/rest/v1/projects.messages?hl=ko#Notification
sendMulticast() 메서드 인자에 포함되는 Message에서 해당 필드를 가지고 있는데, 여기서 AOS/IOS를 제어한다.
현재 사용하고 있는 코드는 아래와 같았다.
$message = CloudMessage::fromArray([
'token' => $deviceToken,
'notification' => [
'title' => $singleSendRequest->getTitle(),
'body' => $singleSendRequest->getMessage(),
'click_action' => $singleSendRequest->getScheme()
],
'webpush' => [
'fcm_options' => [
'link' => $singleSendRequest->getScheme()
]
],
'data' => $singleSendRequest->getData(),
]);
모바일팀 측에서는 아래와 같이 답변했다.
- 현재 별도로 커스텀을 해서, 서버측에서 특정 필드값을 필수로 보내야만 페이지가 연동되게 해놓았다.
(확인 결과 FCM Admin SDK와 무관하게 백엔드단에서 특정 필드를 보내면 됨, 해당 값은 data필드에 속하게 하면 될 듯 => data는 부가적인 정보를 담는 곳임)
- notification 필드를 Message에 포함할 경우, AOS에서는 메시지를 받을 수는 있으나, 링크를 탈 수 없다.
(notification만 타기 때문에, AOS에서는 FCM 서버 연결 이후 행동되는 링크 이동이 불가능하다고 함)
- IOS는 왜 연동이 안 되는 건지 아직 모르겠다고 함
이슈 해결
아직 무엇을 바꿔야할지 명확하게 보이진 않았으나,
우리팀의 팀장님이 아래와 같은 코드로 테스트 해주셨을 때 AOS/IOS에서 정상작동하게 되었다...
왜 되는지 확인한 결과 아래와 같이 해석된다.
data 필드 >> AOS 및 IOS에서 읽고 있는 정보, 해당 필드에 연동 링크 데이터 및 title, message 등등이 모두 들어가 있다.
apns 필드 >> IOS에서 전용 필드, 해당 내용을 IOS에서 읽는다.
AOS 사용 필드 >> data 필드 사용
IOS 사용 필드 >> data, apns 필드 사용
'data' => $data,
'apns' => [
'payload' => [
'aps' => [
'alert' => [
'title' => $title,
'body' => $body,
],
],
],
]
'★ 프로젝트 + 트러블 슈팅 ★' 카테고리의 다른 글
헥사고날 아키텍처 구조, 사용이유 및 부가정보 (3) | 2024.11.20 |
---|---|
[DDD] 도메인, 바운디드 컨텍스트, 애그리거트 개념 정의 (3) | 2024.11.05 |
[FCM] Firebase Cloud Messaging deprecated API 이슈 (0) | 2024.09.13 |
[DDD 헥사고날 아키텍처] 도메인 -> 엔티티 변환간 baseEntity 내 createdDateTime 초기화 현상 트러블 슈팅 (1) | 2024.07.14 |
[DB ORM] INSERT DEFAULT 트러블 슈팅 (0) | 2024.07.07 |
댓글