Flutter 如何在Flatter中将FirebaseUser转换为字符串?

Flutter 如何在Flatter中将FirebaseUser转换为字符串?,flutter,firebase-authentication,Flutter,Firebase Authentication,以下是我的有状态类代码: String id = FirebaseAuth.instance.currentUser().toString(); 我的职能: readLocal() async { prefs = await SharedPreferences.getInstance(); id = prefs.getString('id') ?? ''; if (id.hashCode <= peerId.hashCode) { groupChatId = '$id

以下是我的有状态类代码:

String id = FirebaseAuth.instance.currentUser().toString();
我的职能:

readLocal() async {
  prefs = await SharedPreferences.getInstance();
  id = prefs.getString('id') ?? '';
  if (id.hashCode <= peerId.hashCode) {
    groupChatId = '$id-$peerId';
  } else {
    groupChatId = '$peerId-$id';
  }
  setState(() {});
}
readLocal()异步{
prefs=等待SharedReferences.getInstance();
id=prefs.getString('id')??“”;

if(id.hashCode调用
FirebaseAuth.instance.currentUser()
返回一个包含所有用户数据的对象。如果您只需要:


更新:我刚刚运行了这个,它会为我打印UID:

void _getUser() async {
  FirebaseUser user = await FirebaseAuth.instance.currentUser();
  print(user.uid);
}
其中印刷:

颤振:P07IXLCrwEahYlDhzO1Iv0SKDat2

注意事项:

  • 为了能够在代码中使用
    wait
    ,该方法必须标记为
    async

错误是:没有为类“Future”定义getter“uid”。dart(未定义的\u getter)得到了它。
currentUser
是异步的,因此您需要等待结果。我更新了答案。再次错误:无法将“Future”类型的值分配给“FirebaseUser”类型的变量。dart(分配无效)您确定添加了
wait
关键字吗?这应该会将
Future
打开到
FirebaseUser
中。是的,这是我的代码FirebaseUser user=wait FirebaseAuth.instance.currentUser();String uid=user.uid;
void _getUser() async {
  FirebaseUser user = await FirebaseAuth.instance.currentUser();
  print(user.uid);
}