반응형
- 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 |