我是扑扑和火力爆发的新手,所以请多多包涵。我正在使用Firestore进行电子邮件注册,并在我的应用程序上抖动,注册后,一些其他字段会保存到Firestore。我想检索这些字段以显示在用户个人资料上。
保存到用户集合的字段的关键标识符是注册后自动生成的用户ID。
我在小部件构建上下文中有一个
spring.messages.basename=messages/messages,classpath:moduleI/resources/messages/messages
与我关联的数据方法是:
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...');
}
},
),
}
要检索用户详细信息
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;
}
我曾尝试在.userntails中将.then()添加到设置状态,但其说法是userDetails是无效类型,不能分配给字符串。 这里的当前代码块返回“ Future”的实例,而不是用户“ Details”。
答案 0 :(得分:0)
您的方法被标记为async
,因此您必须等待结果:
Future<void> _userDetails(userID) async {
final userDetails = await getData(userID);
setState(() {
firstName = userDetails.toString();
new Text(firstName);
});
}