• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

firebase.auth().onAuthStateChanged()에 대해서 질문합니다.

21.02.25 17:22 작성 조회수 2.77k

0

안녕하세요. 항상 강의 잘보고 있습니다.

제 질문은

useEffect의 []안에 딱히 넣은 변수가 없어서 onAuthStateChanged는 한번만 실행된것 같은데

user가 바뀔때마다 바뀐 정보가 실시간으로 업데이트 되는 것인가요?? 어떻게 그게 가능한지 지금으로서는 잘 이해가 안되네요^^; onAuthStateChanged메소드 대신에 currentUser프로퍼티 사용하면 맨 처음 브라우저로 열었을때는 유저가 널로 오다가 두번째부터 그 전에 저장되어있던 유저가 오는데 그 이유는 무엇인지...

onAuthStateChanged가 실시간 양방향 메소드라서 계속 통신하고 있는 거라면 어떤거는 실시간 양방향 통신을 하고 어떤거는 안하는데 어떻게 구분할 수 있는지 알 수 있을까요?? (죄송합니다ㅜ 머릿속이 혼란스러워 질문이 두서가 없네효...)

저는 Auth가 세션개념이라고 생각했는데.. 유저 전용 데이터베이스인가요??? 한번 로그인 하면 언제 다시 들어가도 유지 되는데 컴퓨터를 껏다 키면 로그인 정보 사라지게 할 순 없을까요?? ㅜ_ㅜ

또.. auth에 photoURL 업데이트하고 데이터베이스에 이미지URL 따로 저장하는 이유가 무엇인가요??

이상입니다..

답변 2

·

답변을 작성해보세요.

0

답변 감사드립니다 !!

0

안녕하세요  쭁님 

파이어 베이스의 장점중에 하나가 실시간 통신을 굉장히 쉽게 가능하게 해준 다는 것입니다 ~ 
강의중에   Rest VS Websockets이란 부분있죠?   거기에 관한 부분입니다.

그래서 여기 onAuthStateChanged 메소드에 대해서 설명하는 부분을 보시면   obseerver 옵저버라고 나와있잖아요 ~ 그래서 이거는 계속 지켜보고 있는걸 얘기하는 것입니다.  그러기에  한번만 useEffect에 넣어주시면 계속 관찰을 하고 있습니다.

그리고 원래  애플리케이션에서는 User 데이터베이스를 통해서  인증같은 부분을 다 처리할 수 있겠지만 

Firebase에서는   Auth 서비스를 따로 두어서  그걸 통해서 훨씬 강한 인증과 Oauth(소셜 로그인)등 여러  가지 방법으로 로그인 하는걸 쉽게 구현해 두어서     Auth 서비스와   User 데이테베이스 모두에 정보를 넣어주셔야합니다 ~  
수고하세요 ~