Dar*_*han 6 dart firebase firebase-authentication flutter google-cloud-firestore
我想通过将用户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),
);
}
Run Code Online (Sandbox Code Playgroud)
Her*_*tar 16
_userId因为在返回的Future之前构建了小部件,所以它是null FirebaseAuth.instance.currentUser().一旦它完成它就太晚了,小部件不会更新.使用它的一种方法是使用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...');
}
},
),
);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5760 次 |
| 最近记录: |