如何从 firebase 实时数据库中获取数据并更改一个文本字段以表示该特定记录?
Posted
技术标签:
【中文标题】如何从 firebase 实时数据库中获取数据并更改一个文本字段以表示该特定记录?【英文标题】:How do I get data from a firebase realtime database and change one text field to represent that specific record? 【发布时间】:2019-09-04 06:39:14 【问题描述】:这是我在这里的第一篇文章,如有任何困惑,请见谅!
我最近开始使用 Flutter,而且我也是 Firebase 的新手。
我使用实时数据库作为我的应用程序的后端,我的层次结构如下所示:
我想做的是通过他们的 id 查找特定用户,获取他们的信息(在本例中为性别和姓名),然后设置一个小部件(在本例中为文本小部件)以使用该值。
如何做到这一点?
我已经搜索了很多关于此的 *** 问题,所有这些问题都使用 FutureBuilders 或 DataSnapshots,我无法完全弄清楚如何将它们整理出来以便它们工作。
所有在线教程也不会从特定用户那里获取信息,而是查询整个数据库。
【问题讨论】:
【参考方案1】:您可以执行以下操作:
db = FirebaseDatabase.instance.reference().child("Users");
db.orderByKey().equalTo(Id).once().then((DataSnapshot snapshot)
Map<dynamic, dynamic> values = snapshot.value;
values.forEach((key,values)
print(values["name"]);
);
);
首先,您获取节点User
的实例,然后使用orderByKey()
您可以通过id 搜索用户,并检索名称和性别。
查看以下链接了解更多信息:
https://github.com/flutter/plugins/blob/master/packages/firebase_database/lib/src/query.dart#L183
【讨论】:
感谢您的回答!我知道您正在那里打印它 - 我如何将它分配给文本小部件? ***.com/questions/51792113/… 太棒了 :) 我遇到的问题是它作为一个全屏错误消息出现,说它是空的。我假设是因为我在加载表单时将该数据添加到列表中,因此在加载小部件时它没有值。有任何想法吗? :) 在这里查看示例github.com/flutter/plugins/blob/master/packages/… 所以我只是在类级别声明它,然后在 SetState 中设置它(在 initState 中)?以上是关于如何从 firebase 实时数据库中获取数据并更改一个文本字段以表示该特定记录?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 Firebase 实时数据库中获取数据到 Flutter 中的列表中?
如何从 Flutter 中的 Firebase 实时数据库中按 categoryId 获取产品?