Implemented mechanism of redirecting on user status
This commit is contained in:
parent
b2fdcdbc4f
commit
475b1d0bc1
3 changed files with 30 additions and 3 deletions
|
|
@ -19,7 +19,7 @@ class App extends StatelessWidget {
|
|||
|
||||
Route routes(RouteSettings settings) {
|
||||
final List<String> routeTokens = settings.name.split('/');
|
||||
|
||||
print(routeTokens);
|
||||
if (settings.name == '/') {
|
||||
return MaterialPageRoute(
|
||||
builder: (BuildContext context) {
|
||||
|
|
|
|||
|
|
@ -7,12 +7,16 @@ import './google_sign_in_provider.dart';
|
|||
import '../models/summary_model.dart';
|
||||
import '../models/user_model.dart';
|
||||
|
||||
export './google_sign_in_provider.dart' show FirebaseUser;
|
||||
|
||||
class AuthService {
|
||||
final GoogleSignInProvider _googleSignInProvider = signInProvider;
|
||||
final FirestoreProvider _firestoreProvider = firestoreProvider;
|
||||
final _user = BehaviorSubject<FirebaseUser>();
|
||||
|
||||
Observable<FirebaseUser> get userStream => _user.stream;
|
||||
Future<FirebaseUser> get currentUser =>
|
||||
_googleSignInProvider.getCurrentUser();
|
||||
|
||||
AuthService() {
|
||||
_googleSignInProvider.onAuthStateChange.pipe(_user);
|
||||
|
|
|
|||
|
|
@ -1,13 +1,36 @@
|
|||
import 'dart:async';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
|
||||
import '../resources/authService.dart';
|
||||
|
||||
class InitialLoadingScreen extends StatelessWidget {
|
||||
final AuthService _auth = authService;
|
||||
|
||||
void redirectUser(BuildContext context) async {
|
||||
final user = await _auth.currentUser;
|
||||
final routeToBePushed = user == null ? 'login/' : 'home/';
|
||||
Navigator.of(context).pushReplacementNamed(routeToBePushed);
|
||||
}
|
||||
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Container(
|
||||
color: Theme.of(context).canvasColor,
|
||||
child: Center(
|
||||
child: FutureBuilder(
|
||||
future: Future.delayed(
|
||||
Duration(seconds: 2),
|
||||
() => 'Done',
|
||||
),
|
||||
builder: (BuildContext context, AsyncSnapshot snapshot) {
|
||||
if (snapshot.hasData) {
|
||||
redirectUser(context);
|
||||
}
|
||||
return Center(
|
||||
child: CupertinoActivityIndicator(),
|
||||
);
|
||||
},
|
||||
),
|
||||
),
|
||||
);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue