firebase - 在颤振中使用谷歌身份验证并显示用户名和图像
问题描述
我正在尝试获取用户在登录时使用的谷歌帐户的用户名,我想将其显示为文本而不打印,你能帮忙吗?这是代码:
FirebaseUser user = await _auth.signInWithGoogle(
idToken: gSA.idToken, accessToken: gSA.accessToken);
print("User Name : ${user.displayName}");
return user;}
我想将用户名作为文本放入的部分在这里
new ListTile(
title: new Text("Log In"),
leading: new Icon(Icons.account_box),
onTap: () => _signIn()
.then((FirebaseUser user) => print(user))
.catchError((e) => print(e)),
subtitle: new Text(display username here),
),
解决方案
你可以这样做。
创建一个变量“名称”,然后使用以下代码。
String name = 'Log In';
final FirebaseAuth _auth = FirebaseAuth.instance;
final GoogleSignIn googleSignIn = new GoogleSignIn();
FirebaseUser _user;
Future<FirebaseUser> _signIn() async {
GoogleSignInAccount googleSignInAccount = await googleSignIn.signIn();
GoogleSignInAuthentication googleSignInAuthentication = await googleSignInAccount.authentication;
FirebaseUser user = await _auth.signInWithGoogle(
idToken: googleSignInAuthentication.idToken,
accessToken: googleSignInAuthentication.accessToken
);
setState(() {
name = user.displayName.toString();
});
return user;
}
使用setState()函数可以解决您的问题:)
推荐阅读
- spring - 春天返回 200 没有内容并且没有击中控制器
- linux - 在两台 Linux 计算机之间发送队列时如何更改消息大小?
- reactjs - 如何在 React Router Link 组件中添加动态代码
- android-gps - 我应该知道在android中做到这一点
- c# - 使用“使用”语句和 oracle 事务来避免重复代码的正确方法?
- twitter-bootstrap - 如何在 DatePicker 中禁用特定日期之前的所有日期?
- forms - creatin 后为 WinForms 表单设置 CS_DROPSHADOW 会导致其他表单出现双重阴影
- python - 如何在 python 2.7 中为 TLS 套接字进行证书固定?
- c# - Apache Ignite 是否提供跨多个 CacheStore 的事务?
- oracle - 编写一个程序来显示那些总分在指定范围内的学生的信息?