인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

안상후님의 프로필 이미지

작성한 질문수

[Unity] 함께 만들어가는 방치형 게임 개발

Firebase Login

파이어베이스 강의 문의

해결된 질문

작성

·

59

0

파이어베이스 Authentication


게임이 시작되고 게스트로그인 ContinueWith을 통해 계정생성이 잘 완료되고 Realtime Database에도 USER라는 곳에 데이터가 잘 저장되고 불러오기가 되는데 (익명) 사용자가 바로 생성되지 않습니다

111.png.webp

무슨 문제일까요?? 시간이 한참 지나면 생성되어져 있습니다. (강의영상보면 바로 생성되던데 저는 안되네요)

답변 3

0

안상후님의 프로필 이미지
안상후
질문자

그럼 따로 신경쓰지 않고 진행해도 될까요?? 아니면 UID가 확실하게 생성된이후에 처리되도록 코드를 변경해야하나요??

Pinous님의 프로필 이미지
Pinous
지식공유자

지금으로써는 uid생성에 문제가 없다면 크게 건드리실필요는 없을 것 같습니다. 다만 확실하게 하기 위하여 uid가 생성되고 생성된 uid를 확인한 이후에 db를 불러오게끔 처리하는것도 좋을 것 같습니다 :)

0

Pinous님의 프로필 이미지
Pinous
지식공유자

안녕하세요! 말씀하신 현상은 Firebase 익명 인증 처리 도중에 네트워크 지연이나 인증 토큰 발급이 완전히 완료되기 전에 Realtime Database 쓰기가 먼저 진행되어 발생하는 비동기 타이밍 이슈일 가능성이 높습니다.

Firebase는 인증이 완전히 완료되지 않았더라도, 내부적으로 UID를 미리 발급해서 Realtime Database에 접근할 수 있게 해주는 경우가 있습니다. 그래서 Realtime Database에는 UID를 기반으로 데이터가 정상적으로 저장되지만, Firebase Auth 콘솔에는 그 UID가 일정 시간이 지난 후에야 보이는 현상이 발생할 수 있습니다.

또한 Firebase 콘솔의 Auth 탭이 실시간으로 반영되지 않거나, 약간의 반영 지연이 있을 수도 있으니 이 점도 감안해주세요. 실제로는 UID가 정상 생성되었지만 콘솔 UI에 나타나는 데만 시간이 걸릴 수 있습니다.

 

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. 안상후님.

게임을 시작할 때 파이어베이스의 Authentication을 사용하여 게스트 로그인을 시도하시고, Realtime Database에도 USER 데이터가 잘 저장됨에도 불구하고 사용자가 즉시 생성되지 않는 문제를 겪고 계시는군요. 이러한 문제는 대개 몇 가지 원인에 의해 발생할 수 있습니다.

문제 발생 가능성 및 해결 방안:

  1. 네트워크 상태 확인:

    • 게스트 로그인 및 데이터베이스 작업은 네트워크에 의존하므로 일시적인 네트워크 지연으로 인해 사용자 생성 지연이 발생할 수 있습니다. 다양한 네트워크 환경에서 테스트해보시고, 네트워크 연결 상태를 알아보세요.
  2. 비동기 처리 확인:

    • Firebase의 비동기 작업(예: ContinueWith)은 완료되기 전까지 다른 코드 실행에 영향을 받지 않습니다. 코드 흐름 상에서 await나 나중에 호출되는 로직이 있어서 사용자가 UI에 즉시 반영되지 않는 경우가 발생할 수 있습니다. 비동기 작업에서 정확히 어떤 시점에 사용자 생성이 완료되는지 코드를 확인해 보세요.
  3. Firebase 설정 및 사용 옵션:

    • Firebase 콘솔에서 Authentication 설정부분을 다시 확인해보세요. 익명 사용자가 제대로 활성화되어 있고, 모든 설정이 올바른지 검토합니다. 필요하다면 설정을 초기화하고 다시 구성해 보세요.
    • 또한, Firebase의 정책이나 기능 업데이트로 인한 영향을 확인해 보세요. (예: 이미지에서 언급된 Dynamic Links 문제)

유사한 문제 해결 사례 및 참고 자료:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.