使用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()
)],
);
}
}
答案 0 :(得分:0)
不,我不这么认为。您可以轻松获得最后登录的用户。你必须使用&#39; async&#39;这样做的功能。请参阅答案here,它将帮助您获取当前的Firebase用户。