firebase - Flutter getCurrentUser中的Firebase永远不会打开Future,我无法获取数据
问题描述
所以我有一个带有 Firebase 身份验证的 Flutter 应用程序。我有一个用于登录和注册的 dart 文件,然后是一个带有不同小部件的单独 dart 文件,用于数据列表。我想获取当前用户,以便从数据库中获取该用户的个性化数据。但由于某种原因,我永远无法获得该用户。这是代码:
Future getUser() async {
final FirebaseUser user = await FirebaseAuth.instance.currentUser();
return user.getIdToken();
}
return FutureBuilder(
future: getUser(),
builder: (context, snapshot) {
if (snapshot.hasData) return Text(snapshot.data);
else if (snapshot.hasError) return Text("data error (see futurebuilder)");
return Text("Await for data");
},
);
但是在我的调试设备上,文本输出只是说数据错误(请参阅未来的构建器),这是我写的错误消息。但是我无法弄清楚我做错了什么。我不明白为什么这不仅仅是给我用户 ID 令牌。谢谢。
解决方案
尝试将您的代码从snapshot.hasData
to更改为snapshot.connectionState == ConnectionState.done
,看看这是否对您有帮助。我的应用程序中有完全相同的设置,这对我有用。
像这样的东西应该工作
FutureBuilder(
future: getUser(),
builder: (context, snapshot) {
if(snapshot.connectionState == ConnectionState.done){
return
//Execute code after future is returned
} else {
return CircularProgressIndicator();
}
},
);
推荐阅读
- reactjs - 获取状态对象的孩子
- asp.net-mvc - 无法使用 VueJS 验证默认值的下拉列表
- python - 如何仅在用户登录时向用户显示某些内容
- amazon-web-services - 批量调用 AWS Lambda?
- javascript - Scandit Websdk Javascript 设置方向
- wpf - 组合框 SelectionChanged 事件绑定
- configuration - 如何在 next.js >= 9.3 配置中配置全局和本地样式表?
- sql - SQL 查询在 x 年 y 月加入的员工没有给出想要的结果
- python - 我可以在颤振项目中使用python代码吗?
- django - HTTP 请求如何在 Django 中工作?