因此,一开始我尝试仅从 Firebase 获取用户的姓名并将其显示在主页上,但它仅显示小部件的名称。 我使用 google/facebook/anonymous/email 和密码登录方法。
Firebase 实例
Future getCurrentUser() async {
print('done');
return _auth.currentUser;
}
假设获取用户详细信息的小部件
class GetCurrentUser extends StatefulWidget {
@override
_GetCurrentUserState createState() => _GetCurrentUserState();
}
class _GetCurrentUserState extends State<GetCurrentUser> {
@override
Widget build(BuildContext context) {
return FutureBuilder(
future: Provider.of(context).auth.getCurrentUser(),
builder: (context, snapshot) {
print('done');
if (snapshot.connectionState == ConnectionState.done ) {
return snapshot.data.displayName;
} else {
return Text('error');
}
},
);
}
}
以及存储用户名的字符串
String userProfile = GetCurrentUser().toString();
答案 0 :(得分:0)
找到了解决方案!
使用此线程的答案代码How to get the current user id from Firebase in Flutter
我使用了他制作的 void 函数并在小部件中使用它我也想更改用户名并为该字符串设置状态
final FirebaseAuth _ath = FirebaseAuth.instance;
void inputData() {
final User user = _ath.currentUser;
setState(() {
userProfile = user.displayName;
});
}