如何在 Flutter 中从 Firebase Auth 获取用户 ID?
Posted
技术标签:
【中文标题】如何在 Flutter 中从 Firebase Auth 获取用户 ID?【英文标题】:How to get user id from Firebase Auth in Flutter? 【发布时间】:2018-09-24 10:32:38 【问题描述】:我想通过将用户 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),
);
【问题讨论】:
【参考方案1】:_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...');
,
),
);
【讨论】:
以上是关于如何在 Flutter 中从 Firebase Auth 获取用户 ID?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Flutter 中从 Firebase 获取当前用户 ID
如何在flutter中从firebase实时数据库中获取数据?
如何在 Flutter 中从 Firebase Auth 获取用户 ID?