Firebase身份验证与Flutter中的生成路由

我要在用户注销或登录时自动切换屏幕

所以我将用户重定向到包装器小部件,包装器小部件看起来像这样。

class wrapper extends StatelessWidget {
  @override
  Widget build(BuildContext context) {

    final user = Provider.of<User>(context);

    if(user == null){
      return login();
    }else{
      return home();
    }

    return login();
  }
}

但是现在我想使用一个生成路由 那我该怎么做

我已经在包装小部件中尝试过此方法。

class wrapper extends StatelessWidget {
  const wrapper({Key key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    final user = Provider.of<UserSingle>(context);

    if (user == null) {

      Navigator.of(context).pushNamed('/login');
      return null;
    } else {
      Navigator.of(context).pushNamed('/home');
      return null;
    }
  }
}

但是从小部件返回null并不是解决方案。 那么如何将生成的路由与变更通知程序一起用于身份验证流程