如何实施谷歌身份验证检查

时间:2019-04-30 11:01:29

标签: dart flutter firebase-authentication

我正在尝试实现简单的身份验证检查,以决定是转到一页还是另一页,但是检查效果不佳。 有什么建议吗?

// module structure that bundled with webpack
(function() {
  var module = { /* module code */ }

  define('MODULE_NAME', module);
})();

// code to load webpack bundle
var modules = ['MODULE_NAME'];
reqObject.bundles['PATH_TO_WEBPACK_BUNDLE'] = modules;

require(modules, function () {
  // NOT BEING CALLED
});

requirejs.onError = function() { debugger; }

编辑:我也尝试过:

 _isAuth = false
    @override
  void initState() {
    if(FirebaseAuth.instance.currentUser() !=null){
      _isAuth = true;
    }
    super.initState();
  }

      @override
      Widget build(BuildContext context) {
        return ScopedModel<CProductModel>(
          model: _model,
          child: MaterialApp(
            routes: {
              '/': (BuildContext context) =>
                  !_isAuth ? LoginPage() : Products(_model),

应用内部的路由似乎有效,但是如果我靠近应用并每次在登录屏幕中出现时都会再次出现

1 个答案:

答案 0 :(得分:0)

FirebaseAuth.instance.currentUser() 

将提供一个Future对象,因此当您在以下位置使用

   @override
  void initState() {
    if(FirebaseAuth.instance.currentUser() !=null){
      _isAuth = true;
    }
    super.initState();
  }

此处FirebaseAuth.instance.currentUser()提供了将来的对象,它将继续执行,执行不会停止。 当Future对象返回一个对象时,您的执行已经完成。

而不是尝试使用这种方式

FirebaseAuth.instance.currentUser().then((_firebaseUser){
if(_firebaseUser!=null)
{
setState(() {
                  _isAuth=true
                });
}
});