我在Firebase数据库中具有以下数据结构。tripPackages -LCoHHZWL-NTLmJKDILV 50180557210016753 creationDate: farmerID: id: itemState: noOfItems: noOfSoldItems: totalAmount: tripId: tvoID: vegetableName: vid weight:节点trippackages包含包含包裹-LCoHHZWL-NTLmJKDILV的旅程,其中旅程ID和50180557210016753包裹ID。现在,我想用一个特定的itemState(例如IN_TRASIT)过滤所有旅行包。我相信这段代码应该做到这一点:firebaseDatabase.getReference().child("tripPackages").orderByChild("itemState").equalTo("IN_TRANSIT");其中child的值itemState是我的POJO中的一个枚举,但是我无法达到预期的结果。POJO中child的嵌套位置级别或child的值类型与它有关系吗?当使用的child的嵌套位置级别orderByChild为2并且child的值为a时,我能够成功过滤相似数据结构中的数据String。
2 回答
![?](http://img1.sycdn.imooc.com/545862db00017f3402200220-100-100.jpg)
一只斗牛犬
TA贡献1784条经验 获得超2个赞
POJO中child的嵌套位置级别或child的值类型与它有关系吗?
是的,它会影响。您有此数据库:
tripPackages -LCoHHZWL-NTLmJKDILV 50180557210016753 itemState: IN_TRANSIT
为了能够根据的值进行过滤itemState
,请尝试以下操作:
firebaseDatabase.getReference().child("tripPackages").child("-LCoHHZWL-NTLmJKDILV").orderByChild("itemState").equalTo("IN_TRANSIT");
您需要添加旅行ID,以便能够根据 itemState
![?](http://img1.sycdn.imooc.com/5f33c0c90001f9ad05720572-100-100.jpg)
白衣非少年
TA贡献1155条经验 获得超0个赞
Firebase数据库只能查询特定位置下一级的子级。因此,您可以查询单个行程的包裹(通过查询/tripPackages/-LCoHHZWL-NTLmJKDILV
),但不能查询所有行程。
典型的解决方案是将软件包存储为列表,并为它们提供行程ID属性,或者存储“按状态分类的软件包ID”的其他列表。
添加回答
举报
0/150
提交
取消