Поток аутентификации с флаттером - PullRequest
0 голосов
/ 29 сентября 2018

Я новичок, чтобы трепетать.Я пытаюсь настроить поток аутентификации.если пользователь не вошел в систему, я планирую создать MaterialApp с определенными маршрутами (например, Facebook Auth, Google Auth и Email Auth).Если пользователь вошел в систему, он увидит другое MaterialApp с маршрутами, такими как HomePage, ListPage, CreatePage и т. Д.

Я пробовал, но приведенные ниже коды не работают.Кто-нибудь с опытом может посоветовать?заранее спасибо

import 'package:flutter/material.dart';
import 'package:scoped_model/scoped_model.dart';

import './pages/email.dart';
import './pages/auth.dart';
import './pages/home.dart';
import './pages/list.dart';
import './pages/create.dart';
import './scoped-models/main.dart';

void main() => runApp(new MyApp());

class MyApp extends StatefulWidget {
  @override
  State<StatefulWidget> createState() {
    return _MyAppState();
  }
}

class _MyAppState extends State<MyApp> {
  final MainModel _model = MainModel();
  bool _isAuthenticated = false;

  @override
  void initState() {
    _model.autoAuthenticate();
    _model.userSubject.listen((bool isAuthenticated) {
      setState(() {
        _isAuthenticated = isAuthenticated;
      });
    });
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    print(_isAuthenticated);
    return ScopedModel<MainModel>(
      model: _model,
      child: !_isAuthenticated == true
          ? MaterialApp(
              theme: ThemeData(
                  primaryColor: Colors.lime, buttonColor: Colors.teal),
              routes: {
                '/': (BuildContext context) => AuthPage(),
                '/email': (BuildContext context) => EmailPage(),
              },
            )
          : MaterialApp(
              theme: ThemeData(
                  primaryColor: Colors.lime, buttonColor: Colors.teal),
              routes: {
                '/': (BuildContext context) => HomePage(),
                '/list': (BuildContext context) => ListPage(),
                '/create': (BuildContext context) => CreatePage()
              },
            ),
    );
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...