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 应用程序吗

Flutter如何根据某个值从firebase对列表进行分组

如何在flutter中使用firebase登录谷歌时检查用户是新用户还是现有用户?