firebase - 我需要处理 DocumentSnapShot 单个文档
问题描述
我是新来的,正在编写一个新的应用程序。在应用程序中,我想从 firebase 文档中检索用户数据并在用户屏幕上填充 TextFields。我可以使用 DocumentSnapShot 很好地提取数据。我想使用 TextEditingController 并用数据填充它,但我做不到。我知道数据在那里,因为我可以在调试模式下看到它。以下是我的代码片段。这是我获取数据并填充 TextEditingControllers 的地方:
final agentsRef = FirebaseFirestore.instance.collection(('agents'));
getCurrentAgent() async {
final DocumentSnapshot currentAgent =
await agentsRef.doc(globals.currentUid).get();
if (currentAgent == null) {
emailController.text = "";
new Future.delayed(Duration.zero, () {
final agentProvider =
Provider.of<AgentProvider>(context, listen: false);
agentProvider.loadValues(Agents());
});
} else {
// existing record
// Updates Controllers
**emailController.text = currentAgent.data[index].toString(); // THIS LINE IS WHERE I AM HAVING TROUBLE**
// Updates State
new Future.delayed(Duration.zero, () {
final agentProvider =
Provider.of<AgentProvider>(context, listen: false);
agentProvider.loadValues(widget.agents);
});
}
@override
void initState() {
getCurrentAgent();
super.initState();
}
如何访问 DocumentSnapShot 中的每个数据元素?
解决方案
您通常会通过名称而不是索引来获取字段。所以:
**emailController.text = currentAgent.data()["email"].toString();