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);
}