Flutter Firebase 儿童计数
Posted
技术标签:
【中文标题】Flutter Firebase 儿童计数【英文标题】:Flutter Firebase Children Count 【发布时间】:2018-12-07 07:25:22 【问题描述】:我目前正在为我的主应用程序创建一个仪表板应用程序,该仪表板能够在图表中显示使用该应用程序的用户的人口统计数据。我使用 Firebase 数据库作为后端。我的数据库的 JSON 树如下所示。我的问题是,如何获取具有特定键值的数据量?示例:键 'jk' 的值为 'Pria' 的子节点数为 2。
我的后端 JSON 树:
到目前为止,我可以使用以下方法获取所有数据:
DatabaseReference itemRef = FirebaseDatabase.instance.reference().child('data_pengguna');
我也尝试了下面的代码,但它似乎不起作用:
int jmlPria;
FirebaseDatabase.instance
.reference()
.child('data_pengguna')
.orderByChild('jk')
.equalTo('Pria')
.once()
.then((onValue)
Map data = onValue.value;
jmlPria = data.length;
);
但我还没有成功过滤数据并将其放入变量中,有人可以帮助我吗?
非常感谢。
【问题讨论】:
最后一个 sn-p 看起来是正确的,jmlPria
应该有孩子的数量。它有什么问题?
当我尝试使用Text(`$jmlPria`)
输出它时,它返回一个null
,即使我尝试在State
声明和build
内实例化和设置jmlPria
的值功能。知道我的代码@FrankvanPuffelen 有什么问题吗?
确保Text(`$jmlPria`)
位于then()
回调内部。除此之外,jmlPria
将没有正确的值。
哦,我明白了。现在它就像我预期的那样工作。非常感谢@FrankvanPuffelen 的帮助 :)
很高兴听到!我把它写成了一个简短的答案,这样我们就可以很好地为其他尝试这个的人关闭。
【参考方案1】:
最后一个 sn-p 看起来是正确的,jmlPria
应该有孩子的数量。
但jmlPria
的值只会设置为then()
回调内部 中的最新值。确保 Text(
$jmlPria)
在 then()
回调中。除此之外,jmlPria
将没有正确的值。
另见Doug's great blog post on asynchronous programming。
【讨论】:
以上是关于Flutter Firebase 儿童计数的主要内容,如果未能解决你的问题,请参考以下文章
Flutter:Fire Base 存储图像上传的后期初始化错误
Flutter Firebase:Firebase 中的数据更新,但未在屏幕上自动显示计数器更新
在 Flutter 中调用 Firebase 函数时出现 CloudFunctionsException
我可以在使用 AWS amplify for Cognito 和 DataStore 的同时使用 fire base 来托管我的 Flutter Web 应用程序吗