반응형
- main에서 home 을 AuthCheck 로 지정
void main() async { WidgetsFlutterBinding.ensureInitialized(); await Firebase.initializeApp( options: DefaultFirebaseOptions.currentPlatform, ); runApp(const MyApp()); } class MyApp extends StatelessWidget { const MyApp({super.key}); @override Widget build(BuildContext context) { return GetMaterialApp( title: 'Flutter Demo', home: const AuthCheck(), ); } }
- AuthCheck에서 StreamBuilder에 의하여 FirebaseAuth 상태가 변경될때 자동으로 HomeScreen으로 이동하거나 LoginScreen 으로 이동한다.
(HomeScreen에서 Logout을 하면 자동으로 StreamBuilder에 의하여 LoginScreen으로 이동한다.)
class AuthCheck extends StatelessWidget { const AuthCheck({super.key}); @override Widget build(BuildContext context) { return StreamBuilder<User?>( stream: FirebaseAuth.instance.authStateChanges(), builder: (context, snapshot) { if (snapshot.connectionState == ConnectionState.waiting) { return const Scaffold( body: Center(child: CircularProgressIndicator()), ); } else if (snapshot.hasData) { return const HomeScreen(); } else { return const LoginScreen(); } }, ); } }
반응형
'[====== Development ======] > Flutter' 카테고리의 다른 글
[Flutter] GlobalKey 에 대해서 (2) | 2024.06.21 |
---|---|
[Flutter] DefaultTabController 에 대해서.. (0) | 2024.06.20 |
showModalBottomSheet 안의 TextField 가 키보드에 가려지지 않게 하는 방법 (0) | 2024.06.12 |
[Flutter] Json Serialization (0) | 2024.03.03 |
Flutter App Architecture: The Repository Pattern (0) | 2024.03.02 |