这是我的有状态类的代码:
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(() {});
}
它在String id
工作正常。
我希望ID与当前用户UID相同。
调用FirebaseAuth.instance.currentUser()
返回一个FirebaseUser
,它是一个包含所有用户数据的对象。如果你只想要UID of the user:
FirebaseUser user = await FirebaseAuth.instance.currentUser();
String uid = user.uid;
更新:我刚刚运行它,它为我打印UID:
void _getUser() async {
FirebaseUser user = await FirebaseAuth.instance.currentUser();
print(user.uid);
}
哪个印刷:
颤振:P07IXLCrwEahYlDhzO1Iv0SKDat2
需要注意的事项:
await
,该方法必须标记为async
。