Firebase 为什么Flitter一直试图匿名登录用户?

Firebase 为什么Flitter一直试图匿名登录用户?,firebase,firebase-authentication,flutter,Firebase,Firebase Authentication,Flutter,在一个次要项目中使用Flutter,最初设置为通过电子邮件和匿名方式进行身份验证 奇怪的是,即使我们的测试用户使用电子邮件登录,他们在重新启动应用程序时仍然会匿名登录 作为一种解决方法,我们刚刚关闭了匿名用户,这已经得到了修复,但应用程序仍然尝试匿名登录用户,输出日志证明了这一点 [VERBOSE-2:dart_error.cc(16)]未处理的异常: PlatformException(例外,FIRAuthErrorDomain,给定的登录提供程序已对此Firebase项目禁用。请在Fireb

在一个次要项目中使用Flutter,最初设置为通过电子邮件和匿名方式进行身份验证

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

作为一种解决方法,我们刚刚关闭了匿名用户,这已经得到了修复,但应用程序仍然尝试匿名登录用户,输出日志证明了这一点

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

现在这不是一个大问题,但有点小问题

下面是用于加载用户的代码片段

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()
      )],
    );
  }
}
类配置文件扩展StatefulWidget{
最终用户ID;
Profile({Key-Key,final this.userId}):super(Key:Key);
@凌驾
_ProfileState createState()=>new_ProfileState();
}
类_ProfileState扩展了状态{
FirebaseUser\u用户;
注销(){
}
@凌驾
void initState(){
FirebaseAuth.instance.currentUser()。然后((用户)=>setState(){
_用户=用户;
}));
super.initState();
}
@凌驾
小部件构建(构建上下文){
最终小部件bioStack=新堆栈(子项:[
新文本('User ID:$\u User.uid')
]);
返回新列(
孩子们:[生物斯塔克,新升起的按钮(
子项:新文本(“注销”),
onPressed:logout()
)],
);
}
}

不,我不这么认为。您可以轻松获取上次登录的用户。要做到这一点,您必须使用“异步”函数。查看答案,它将帮助您获取当前Firebase用户