如何从 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 中的实时数据库中获取数组

如何从 Firebase 实时数据库中获取数据到 Flutter 中的列表中?

如何从 Flutter 中的 Firebase 实时数据库中按 categoryId 获取产品?

我如何从firebase实时数据库中获取所有数据

如何从 firebase 实时数据库中获取数据并更改一个文本字段以表示该特定记录?

如何通过在 swift 中实现观察者从 Firebase 实时数据库中获取嵌套数据