오늘의 이슈 #Firebase 규칙
문제
Firebase 규칙 업데이트 후, 신규 유저의 문서가 자동 생성되지 않는 예외 상황 발견
요인
와이파이 연결 안 된 상태 / 앱 권한 팝업에서 강제 종료 시, Firestore에 반영 안 됨
해결책
UID가 존재하지만 문서가 없을 경우, 재검토 후 자동 문서 발행 로직 추가
1.
신기하게도 유저가 아름아름 유입되고 있습니다.
평화롭게 로그를 분석하던 도중..
신규 유저의 활동을 위한 [데이터 문서]가 생성 되지 않는 문제를 발견..!
원래라면 자동으로 생성되는 것이 정상인데 말이죠..!
2.
문제 진단을 위해 Gemini와 논의를 해봤어요.
일단 현재 상황에 대해 물어봤더니,
'로그인 처리' 단계에서 문제가 발생하고 있음을 확인..!
3. 조금 더 구체적인 진단을 위해,
유저 로그인 처리 코드를 넣었어요.
아하..!
보안 강화를 위해 업데이트했던 규칙으로 인해서,
'신규 로그인 시, 바로 문서 생성'하는 로직의 빈 구멍 발견..!
4. 저는 Firebase Auth에서,
신규 유저의 UID를 생성받고 관리해요.
이 UID는 유저의 익명 로그인 Key가 되는 거죠.
(명패 같은..?!)
5. 이 명패를 가지고 활동을 하려면,
Firestore에 제가 설계한 UID 별 활동 문서가
자동으로 생성되어야 해요!
지난 보안 규칙을 업데이트하면서,
아예 자동 생성 경우 외에는
일반 유저는 접근 못하도록 막아놓았기 때문이죠.
6. 그런데 사실,
이 Firebase Auth 생성과 Firestore 문서 생성은
완전 별도의 서비스예요.
제가 1차적으로 연결다리를 제공해 주지만..!
특정 예외 상황에서는
이 2 개를 연결해 주는 다리가 끊겨있을 수 있다는 거죠..!
7. 그 예외 상황은 아래와 같아요.
로그인 직후 네트워크가 일시적으로 끊김.
로그인 직후 유저가 앱을 강제로 종료함.
(가장 흔한 경우) 앱을 처음 켰을 때 뜨는 '권한 허용(알림 등)' 팝업을 보고 유저가 고민하다가 앱을 꺼버림.
8. 이제 필요한 건,
2차 검증을 통해
문서 생성의 재기회를 주는 로직!
UID가 있는 유저인데 문서가 생성 안되어 있다면?
확인 후 안전하게 생성해 주는 거죠..!
9. 마지막으로 Gemini와 검토 후 종료!
요즘은 이따금 들어오는 유저의 요청사항을 반영하며,
다음 기능을 개발하고 있어요.
저.. 비개발자인 거.. 다들 아시겠죠..?
개발 포기자..
그런데 이렇게 진행되고 있는 거 보면..!
여러분도 할 수 있습니다 :D
혹시 같이 고민하고 해결해나가고 싶은 부분이 있다면,
언제든지 댓글 주세요 !!