Flutter
[Flutter] StreamBuilder로 firebase 로그인 상태관리하기
mjjayce
2025. 4. 28. 20:57
Streambuiler
비동기로 데이터를 가져올 때 사용하는 builder.
데이터의 변화를 실시간으로 감시하기 때문에 네트워트 통신으로 데이터베이스를 사용할 때 유용함.
아래는 StreamBuilder로 Firebase authentication 기반 어플의 로그인 상태를 관리해주는 코드이다.
main함수로, 어플을 처음 빌드하는 부분이다.
요소
StreamBuilder - Firebase Auth의 로그인/로그아웃 변화를 실시간으로 감지
snapshot.data - 현재 로그인된 User? 객체
StreamBuilder는 사용하는 snapshot 의 성질에 따라서 여러가지 상태를 감시할 수 있는 기능을 가진다.
지금 사용하는 stream은 authStateChanges, 즉 auth의 상태를 감지하고, snapshot은 유저의 정보를 가진다.
현재의 로그인된 유저가 있는지를 분기로 하여 각각의 경우에 LoginPage, HomePage를 출력하는데,
해당 StreamBuilder로 앱 전체를 감싸주었기 때문에 앱 전체에서 이 인식이 가능하다.
즉, 어플 사용 중 어느 경우에라도 로그인 상태가 변경되면
로그인된 경우: HomePage로
로그아웃된 경우: LoginPage로
이동하게 된다.