보안을 강화했더니 유저 문서 생성이 안 된다.

오늘의 이슈 #Firebase 규칙

by 옴느




오늘의 이슈 요약


문제

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



혹시 같이 고민하고 해결해나가고 싶은 부분이 있다면,

언제든지 댓글 주세요 !!



매거진의 이전글알림 기능 뽀개보자