我想通过将用户 ID 作为字段分配给文档来将用户相关数据保存在 Firestore 中。
如何从 Firebase Auth 获取用户 ID?
或者有没有更好的方法在 Firestore 中存储用户数据?
我无法以这种方式从 Firebase Auth 获取用户 ID(Text(_userId) 返回 _userId == null 错误):
String _userId;
...
@override
Widget build(BuildContext context) {
FirebaseAuth.instance.currentUser().then((user) {
_userId = user.uid;
});
return new Scaffold(
appBar: new AppBar(
title: new Text("App bar"),
),
body: new Text(_userId),
);
}
最佳答案
_userId
为空,因为小部件是在 FirebaseAuth.instance.currentUser()
返回的 Future 完成之前构建的。一旦完成就太晚了,小部件不会更新。使用它的一种方法是使用 FutureBuilder
有点像这样:
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("App bar"),
),
body: FutureBuilder(
future: FirebaseAuth.instance.currentUser(),
builder: (context, AsyncSnapshot<FirebaseUser> snapshot) {
if (snapshot.hasData) {
return Text(snapshot.data.uid);
}
else {
return Text('Loading...');
}
},
),
);
}
https://stackoverflow.com/questions/49827598/
相关文章:
sqlite - 如何在 Flutter 中使用 SQFlite 进行数据库查询
Flutter - InheritedWidget - 处置
android - 如何设置 Flutter 应用的构建和版本号
dart - 在 Flutter 中调用 showTimePicker() 时如何使用 24 小时制
build - 如何在 Flutter 中修复 "Gradle build failed to pr
image - Flutter CircleAvatar backgroundImage没有填满圆圈
firebase - Flutter如何使用Future返回值作为变量