为什么Flutter会一直试图匿名签署用户?

时间:2018-05-04 17:33:42

标签: firebase firebase-authentication flutter

使用Flutter进行辅助项目,最初设置为通过电子邮件匿名进行身份验证。

奇怪的是,即使我们的测试用户使用电子邮件登录,他们仍然会在重新启动应用时匿名登录。

作为一种解决方法,我们只是关闭了匿名用户并修复了该问题,但该应用仍尝试匿名签署用户,如输出日志所示

[VERBOSE-2:dart_error.cc(16)]未处理的异常: PlatformException(例外,FIRAuthErrorDomain,此Firebase项目已禁用指定的登录提供程序。在Firebase控制台中,在Auth部分的登录方法选项卡下启用它。)

现在不是一个重大问题,但是有点蠢。

以下是用于加载用户的代码段

class Profile extends StatefulWidget {
  final userId;
  Profile({Key key, final this.userId}) : super(key: key);

  @override
  _ProfileState createState() => new _ProfileState();
}

class _ProfileState extends State<Profile> {
  FirebaseUser _user;

  logout() {

  }

  @override
  void initState() {
    FirebaseAuth.instance.currentUser().then((user) => setState(() {
          _user = user;
        }));

    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    final Widget bioStack = new Stack(children: [
      new Text('User ID: $_user.uid')
    ]);

    return new Column(
      children: <Widget>[bioStack, new RaisedButton(
        child: new Text('Logout'),
        onPressed: logout()
      )],
    );
  }
}

1 个答案:

答案 0 :(得分:0)

不,我不这么认为。您可以轻松获得最后登录的用户。你必须使用&#39; async&#39;这样做的功能。请参阅答案here,它将帮助您获取当前的Firebase用户。