首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据排序和过滤.颤振-实时数据库

数据排序和过滤.颤振-实时数据库
EN

Stack Overflow用户
提问于 2022-05-23 16:36:43
回答 1查看 509关注 0票数 1

在我的火基实时数据库中有这样的持续数据。我想得到值​​大于75的键,它们的值和省值。

代码语言:javascript
复制
  {
    "allboxes": {
      "box00001": {
        "boxes": {
          "Electronic Box": 80,
          "Glass Box": 25,
          "Metal Box": 78,
          "Oil Box": 90,
          "Paper Box": 77,
          "Plastic Box": 18
        },
        "info": {
          "Id": "00001",
          "Province": "Keçiören"
        }
      },
      "box00002": {
        "boxes": {
          "Electronic Box": 95,
          "Glass Box": 86,
          "Metal Box": 45,
          "Oil Box": 79,
          "Paper Box": 98,
          "Plastic Box": 18
        },
        "info": {
          "Id": "00002",
          "Province": "Etimesgut"
        }
      },
      "box00003": {
        "boxes": {
          "Electronic Box": 55,
          "Glass Box": 91,
          "Metal Box": 79,
          "Oil Box": 65,
          "Paper Box": 50,
          "Plastic Box": 100
        },
        "info": {
          "Id": "00003",
          "Province": "Çankaya"
        }
      }
    }
  }

我将在这样的Gridview.builder中使用它;

代码语言:javascript
复制
 GridView.builder(
    shrinkWrap: true,
    gridDelegate:
        const SliverGridDelegateWithFixedCrossAxisCount(
      mainAxisExtent: 220,
      crossAxisCount: 2,
      crossAxisSpacing: 15,
    ),
    itemCount: boxesValuesList!.length,
    itemBuilder: (context, index) => OpenedBoxesGrid(
      boxesValuesList![index].toString(),
      boxesKeysList![index],
      provinceValuesList![index],
    ),
  )

我试过这个;

代码语言:javascript
复制
  final greaterThan75ValueTaskRef = FirebaseDatabase.instance
  .ref('allboxes')
  .orderByChild('boxes/Oil Box')
  .startAt(75);

它在打印函数中返回这个。

I/颤振(63 45):{盒:{玻璃盒: 86,塑料盒: 18,电子盒: 95,金属盒: 45,油箱: 79,纸箱: 98},信息:{Id: 00002,省:Etimesgut},{盒:{玻璃盒: 25,塑料盒: 18,电子盒: 80,金属盒: 78,油箱: 90,纸盒: 77},信息:{Id: 00001,省:Ke i i ren}}

但正如我所提到的,我希望在一个列表中获得键,在另一个列表中获取它们的值,在另一个列表中获取它们的省值。我怎么能这么做?我想要创建三个列表,每个元素的等价物排序如下。

电子盒、金属盒、油箱、纸箱、电子盒、玻璃盒、油箱、纸盒、玻璃盒、金属盒、塑料盒80、78、90、77、95、86、79、98、91、79、100 Ke i ren、Etimesgut、圣卡雅、圣卡雅、圣卡亚

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-23 23:26:54

当您从Firebase实时数据库读取数据时,您将得到一个DataSnapshot object,其中包含您读取的路径中的所有数据。

若要获取快照的键,请调用其key property

若要仅获取快照下的特定分支,请使用其child()方法。因此,例如(假设boxesValuesList是带有您共享的查询结果的DataSnapshot ),要获得构建器中的框的快照,可以执行boxesValuesList![index].child("boxes")

这可以深入到多个层次,因此再次假设boxesValuesList是具有共享查询结果的DataSnapshot,您可以使用:boxesValuesList![index].child("boxes").child("Oil Box").getValue()或简写符号boxesValuesList![index].child("boxes/Oil Box").getValue()获得Oilbox的值。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72351992

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档