我是新来的,所以请容忍我。我使用电子邮件注册和我的应用程序,在注册时,一些额外的字段保存到消防局。我想检索那些要显示在用户配置文件上的字段。
保存到用户集合的字段的关键标识符是在注册时自动生成的用户id。
在我的小部件构建上下文中
child: new FutureBuilder<FirebaseUser>(
future: _firebaseAuth.currentUser(),
builder: (BuildContext context, AsyncSnapshot<FirebaseUser> snapshot) {
if (snapshot.connectionState == ConnectionState.done) {
String userID = snapshot.data.uid;
_userDetails(userID);
return new Text(firstName);
}
else {
return new Text('Loading...');
}
},
),我的get关联数据方法是:
Future<void> getData(userID) async {
// return await Firestore.instance.collection('users').document(userID).get();
DocumentSnapshot result = await Firestore.instance.collection('users').document(userID).get();
return result;}
检索用户详细信息
void _userDetails(userID) async {
final userDetails = getData(userID);
setState(() {
firstName = userDetails.toString();
new Text(firstName);
});}
我尝试将.then()添加到_userdetails中的set状态,但它说userDetails是一种空类型,不能分配给字符串。这里的当前代码块返回的是“未来”实例,而不是用户详细信息。
发布于 2018-12-26 14:15:14
您的方法被标记为async,因此必须等待结果:
Future<void> _userDetails(userID) async {
final userDetails = await getData(userID);
setState(() {
firstName = userDetails.toString();
new Text(firstName);
});
}https://stackoverflow.com/questions/53932445
复制相似问题