Java 如何订购';子数据';在Firebase?
我有一个Firebase数据集,其结构如下:Java 如何订购';子数据';在Firebase?,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,我有一个Firebase数据集,其结构如下: coloursets - default - key - name - colours - black - key - name - hex code - order - white - key - name - hex code - order “订单”只是一个数字。
coloursets
- default
- key
- name
- colours
- black
- key
- name
- hex code
- order
- white
- key
- name
- hex code
- order
“订单”只是一个数字。当我从数据库中检索它时,我希望能够获得特定顺序的颜色,由“顺序”字段指定。为了先黑后白,我给“黑”下“1”的命令,“白”下“2”的命令
如何使用它按顺序检索数据?还是有更好的方法
我目前正在使用此文件检索它:
DatabaseReference mColourSetReference = FirebaseDatabase.getInstance().getReference()
.child("coloursets").child(this.key);
mColourSetReference.addListenerForSingleValueEvent(listener);
但无法指定检索颜色的顺序。它似乎默认为颠倒顺序,所以当前它先变为白色,然后变为黑色
我更习惯于MySQL,所以我无法理解这一点,在文档中也找不到任何东西
编辑
以下是数据库相关部分的屏幕截图:
要订购,请尝试以下操作:
DatabaseReference mColourSetReference = FirebaseDatabase.getInstance().getReference()
.child("coloursets").child("colours");
Query queries=mColourSetReference.orderByChild("order");
公共查询orderByChild(字符串路径)
创建一个查询,其中子节点按指定路径的值排序
更多信息请点击此处:
这给了我一个“不兼容类型”错误-它返回的是一个查询而不是数据库引用…你能发布数据库的屏幕截图吗试试这个:
DatabaseReference mColourSetReference=FirebaseDatabase.getInstance().getReference().child(“colorset”);queryquerys=mColourSetReference.orderByChild(“默认/黑色/颜色/顺序”)
然后尝试获取valueventlistener中的描述、键和名称MColourseTreeference
是ColorSets中的快照,但随后您将此orderByChild(“默认/黑色/颜色/顺序”)
是的,如果您指定黑色的颜色,这将允许您在添加valueeventlistener并在default
内迭代后检索描述和键,但最好是更改数据库结构检查这也可能有帮助:,没问题!