' 不是类型 'String' 的子类型"),firebase,flutter,dart,google-cloud-firestore,userid"/>

首页 > 解决方案 > Flutter 在另一个页面上获取用户 ID 并将其转换为 String ("type 'Future' 不是类型 'String' 的子类型")

问题描述

我需要从我的个人资料页面上的当前登录用户获取用户 ID。我遵循了 Youtube 上的网络忍者教程。这是我目前的方式

 final FirebaseAuth _auth = FirebaseAuth.instance;
getCurrentUser() async {
    final FirebaseUser user = await _auth.currentUser();
    final uid = user.uid;
    // Similarly we can get email as well
    //final uemail = user.email;
    print(uid);
    //print(uemail);
  }

但是如果我在我的 Scaffold 中调用它,我会得到这个输出

“未来”类型不是“字符串”类型的子类型

和 Uid。如何将其转换为字符串?还是有更优雅的方式?

谢谢!

标签: firebaseflutterdartgoogle-cloud-firestoreuserid

解决方案


你可以试着把它放在一个FutureBuilder

FutureBuilder<String>(
  future: () async {
    FirebaseAuth auth = FirebaseAuth.instance;
    FirebaseUser user = await auth.currentUser();
    String uid = user.uid.toString();
    return uid;
  }(),
  builder: (context, snapshot) {
    if (snapshot.hasData) {
      return Text(snapshot.data);           // <- Customize your widget here
    } else {
      return CircularProgressIndicator();
    }
  },
)

推荐阅读