Skip to content

fix: 공유 푸시를 현재 로그인과 공유 코드에 한정한다 #206

Closed

Description

@OnlyReadOneBook

📜 Overview (Required)

공유 푸시 표시를 현재 기기의 로그인 계정과 등록된 공유 코드에 한정한다. #165의 로컬 알람 정리와 #195의 서버 전송 경계 이후 남은 sender/receiver 계약 후속이다.

  • 서버는 recipient UID, 공유 코드, 일정 ID를 포함한 data 메시지를 수신자별로 보낸다. 기존 삭제 이벤트 처리와 전송 한도·결과 검증을 유지한다.
  • 앱은 현재 계정과 공유 코드가 일치할 때만 알림을 표시하고, 로그아웃·코드 변경/해제와 표시 동작의 경합을 직렬화한다.
  • 이미 표시된 공유 알림을 좁게 정리하며 기기의 정시 알람은 보존한다.
  • 토큰 갱신은 Repository를 통해 현재 사용자와 공유 코드 등록에 반영한다. 토큰과 일정 내용을 로그에 남기지 않는다.
  • 가짜 SDK로 실제 Functions handler, 계정/코드 불일치와 전환 경합, 알림 권한 차단 및 정상 알람 보존을 검증한다.

📍 Note (Optional)

#124의 공유 등록 수명과 함께 검증한다. UID별 등록 구조를 유지하며 #84의 FID 이행이나 다중 기기 등록 설계로 확대하지 않는다. 새 서버·앱의 배포 순서 및 기존 메시지의 호환 한계를 문서화한다. 실제 운영 푸시 전송·Functions 배포·결제 변경(#102)은 이 코드 작업에 포함하지 않는다.

구현 중 확인한 추가 세션 경계

계정 삭제는 await 뒤 현재 설정과 FirebaseUser를 다시 읽는 경로가 있었다. 동일 C03 세션 보호 범위에서 시작 UID/코드/revision을 고정하고 각 비동기 단계 뒤 취소/세션을 확인한다. watcher/Auth 삭제는 expected UID를 요구하고, local alarm 취소·공유 알림 정리는 동일 세션 잠금에서만 실행한다. 6개 삭제 단계별 계정 전환/취소를 검증한다. PR #213에 포함한다.

Metadata

Metadata

Labels

Bug버그 수정 (fix)

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions