首页 > 解决方案 > 在颤振中使用谷歌身份验证并显示用户名和图像

问题描述

我正在尝试获取用户在登录时使用的谷歌帐户的用户名,我想将其显示为文本而不打印,你能帮忙吗?这是代码:

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),
        ),

标签: firebasedartfirebase-authenticationflutter

解决方案


你可以这样做。

创建一个变量“名称”,然后使用以下代码。

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()函数可以解决您的问题:)


推荐阅读