2023-02-21 화요일

·2023년 2월 21일
0

Today I Learned

목록 보기
76/114
post-thumbnail

✏️ 무엇을 배웠나


1. 파이어베이스 authService를 이용해 신규 유저 판별하기

신규 유저일 때 추가 정보를 등록할 수 있는 모달을 띄워줘야 했다.

검색해보니까 AdditionalUserInfo를 이용하면 불린값으로 신규 유저 판별이 가능하다고 해서 시도해봤다.

결과 : 실패

이건 소셜 로그인을 이용할 때만 사용이 가능했다. 이메일로 가입한 경우에는 판별을 할 수가 없어서 다른 방법이 필요했다.

UserMetaData를 이용하기로 했다. 로그인한 유저의 metadata를 보면 createAt과 lastLoginAt이 있고 이 둘을 비교했을 때 같다면 신규 유저라고 볼 수 있다. 이 점을 이용해서 이 둘이 트루일 때만 로그인 시 모달을 띄워줬다.

이렇게 하면 소셜 로그인이든 이메일 로그인이든 같은 조건에서 모달을 띄우줄 수 있다.

🥵 무엇이 어려웠나


1. 서버 데이터를 효율적으로 사용하기

오늘 파이어베이스 일일 사용량을 초과해 서버가 막혔다. 일단은 파이어베이스 프로젝트를 하나 더 만들어서 해결했지만, 하루만에 초과되었다는 게 뭔가 문제가 있음을 느껴서 서버에서 데이터를 어떻게 가져올지 고민하고 있다.

지금은 여러 컴포넌트에서 각자 파이어베이스에서 데이터를 가져오다보니 사용량이 쓸데없이 많아지고 있는 상황이라 이 부분을 해결해주기로 했다.

리코일 사용 : 리코일을 사용해서 파이어베이스에서 가져온 데이터를 전역 상태로 정의했다. 같은 데이터를 더블로 가져오는 문제는 어느 정도 해결을 했는데, 문제는 비동기 처리가 필요한 컴포넌트도 있어서 이걸 어떻게 해야 할지 고민 중이다. 메인페이지가 마운트 되면 곧바로 파이어베이스 데이터를 가져와 미리 정의해둔 atom에 데이터를 넣어줬는데, 문제는 메인페이지를 거치지 않으면 다른 페이지에서는 리코일 상태가 비어버린다. 최상단 app 컴포넌트에서 해봤지만 이것도 빈 데이터가 나오고... 뭐가 문제인가.

오늘 해결하려고 했는데 새벽이 늦었고 내일도 일찍 일어나야 하니까 여기서 마무리하도록 한다.

profile
⛰ 프론트엔드 개발 공부 블로그

0개의 댓글