在我的火基实时数据库中有这样的持续数据。我想得到值大于75的键,它们的值和省值。
{
"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中使用它;
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],
),
)我试过这个;
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、圣卡雅、圣卡雅、圣卡亚
发布于 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的值。
https://stackoverflow.com/questions/72351992
复制相似问题