我可以通过身份验证与用户登录,但是如何获得当前用户的帮助。
我正在尝试这种方式
FirebaseUser user = FirebaseAuth.instance.currentUser;
print(user.uid);
Run Code Online (Sandbox Code Playgroud)
但显示为
无法将类型'()-> Future类型的值分配给firebaseuser类型的变量“
这是一个对我有用的解决方案。我也有同样的问题,但我设法通过这样做来克服。这是我的代码片段
String accountStatus = '******';
FirebaseUser mCurrentUser;
FirebaseAuth _auth;
@override
void initState() {
super.initState();
_auth = FirebaseAuth.instance;
_getCurrentUser();
print('here outside async');
}
_getCurrentUser () async {
mCurrentUser = await _auth.currentUser();
print('Hello ' + mCurrentUser.displayName.toString());
setState(() {
mCurrentUser != null ? accountStatus = 'Signed In' : 'Not Signed In';
});
}
Run Code Online (Sandbox Code Playgroud)
在我的 StatefulWidget 类的构建方法中,我有一个带有“accountStatus”的文本小部件,显示用户是否登录。这个异步 _getCurrentUser 方法从 FirebaseAuth 获取用户并在屏幕上重新绘制帐户状态变量;一旦您使用电子邮件和密码登录,就可以通过异步方法轻松获取用户。希望这可以解决问题 请注意,即使互联网关闭,这也有效。在这种情况下,'mCurrentUser' 是从 Firebase 缓存中获取的。
我尚不十分了解Flutter,但从您的错误消息中,我认为这应该可以修复错误
someMethod() async {
FirebaseUser user = await FirebaseAuth.instance.currentUser();
print(user.uid);
Run Code Online (Sandbox Code Playgroud)