Skip to content

Instantly share code, notes, and snippets.

@shark-h
Created September 4, 2019 10:26
Show Gist options
  • Save shark-h/e540101e123d2f8fb513bdfc77995c27 to your computer and use it in GitHub Desktop.
Save shark-h/e540101e123d2f8fb513bdfc77995c27 to your computer and use it in GitHub Desktop.
void main() => runApp(AuthCheck());
class AuthCheck extends StatefulWidget {
@override
_AuthCheckState createState() => _AuthCheckState();
}
class _AuthCheckState extends State<AuthCheck> {
final FirebaseAuth _firebaseAuth = FirebaseAuth.instance;
FirebaseUser user;
String token;
@override
void initState() {
super.initState();
checkCurrentUser();
}
Future<FirebaseUser> checkCurrentUser() async {
try {
user = await _firebaseAuth.currentUser();
token = await user.getIdToken();
return user;
} catch (e) {
print(e);
return null;
}
}
@override
Widget build(BuildContext context) {
return MaterialApp(
theme: ThemeData(primarySwatch: Colors.red),
home: FutureBuilder<FirebaseUser>(
future: checkCurrentUser(),
builder: (BuildContext context, AsyncSnapshot<FirebaseUser> snapshot) {
switch (snapshot.connectionState) {
case ConnectionState.none:
case ConnectionState.active:
case ConnectionState.waiting:
return Scaffold(
body: Container(
color: Color.fromARGB(255, 244, 194, 87),
child: Center(
child: CircularProgressIndicator(),
),
),
);
case ConnectionState.done:
if (snapshot.data != null)
return MainApp(
token: token,
user: user,
);
return Login();
}
return null;
},
),
);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment