AppDelegate or SceneDelegate
로그인 성공/실패 등에 따라 화면전환을 해줄 수 있는 RootWindow 를 커스텀 구현합니다.
Auth Flow 이후, 결과에 따라 TutorialVC or FirstVC 를 keywindow의 rootViewController 로 할당 후, makeKeyAndVisible() 을 통해 사용자에게 제공합니다.
Tutorial
일반적으로 튜토리얼은 사용자에게 간단하게 앱 소개, 사용법 설명등을 하는 역할입니다
BoilerPlate 에서는 본래 튜토리얼의 목적보다 Auth 가 정상적으로 이루어지지 않은 사용자를 처리하기 위한 화면으로 이용합니다.
서비스 초기, 유입량이 중요할 때는 튜토리얼 화면에 Start 버튼만 추가하고, Start 버튼 클릭시 Anonymous login 을 수행하여 앱의 진입장벽을 낮춥니다. Third-party 로그인은 유저 기반 서비스 기능이 필요할 때 요구하며 firebase auth 의 link 를 이용합니다.
서비스가 자리잡은 이후, Tutorial 에서 Third-party 로그인을 바로 지원합니다.
User Validation
Firebase token 을 서비스에 그대로 사용할 수는 없습니다. 유저 기반 서비스를 위해서는 유저의 정보가 필요한데 firebase token 만으로는 한계가 있기 떄문.
Firebase login, link 가 발생했을 때 DB에 Service User 를 저장합니다.
firebase uid 와 service user 는 1:1 로 구성합니다.
Register Notification
앱 로그인 등 FCM 토큰이 변경되는 경우 server DB의 user의 FCM token 을 갱신해야 합니다.