我正在尝试使用以下查询来查询 firebase 数据库:
Query test = mDatabase.orderByChild("creation_date").startAt("-L9H3X-qZZt5WiAdsOKE");
我的数据如下所示:
-L9H2ea9Ygt0pD5f17Ze
creation_date:
20180904
post_id:
-L9H2ea9Ygt0pD5f17Ze
-L9H3Dmw9gn9lUOV10hK
creation_date:
20180403
post_id:
-L9H3Dmw9gn9lUOV10hK
-L9H3OiIzjegJJuuFSfB
creation_date:
20180302
post_id:
-L9H3OiIzjegJJuuFSfB
-L9H3X-qZZt5WiAdsOKE
creation_date:
20180404
post_id:
-L9H3X-qZZt5WiAdsOKE
-L9JmFch2lnftlMHHiQd
creation_date:
20180405
post_id:
-L9JmFch2lnftlMHHiQd
-L9JueI5x9oFRhOX6a3G
creation_date:
20180405
post_id:
-L9JueI5x9oFRhOX6a3G
我知道订购后它看起来像这样:
-L9H3OiIzjegJJuuFSfB
creation_date:
20180302
post_id:
-L9H3OiIzjegJJuuFSfB
-L9H3Dmw9gn9lUOV10hK
creation_date:
20180403
post_id:
-L9H3Dmw9gn9lUOV10hK
-L9H3X-qZZt5WiAdsOKE
creation_date:
20180404
post_id:
-L9H3X-qZZt5WiAdsOKE
-L9JmFch2lnftlMHHiQd
creation_date:
20180405
post_id:
-L9JmFch2lnftlMHHiQd
-L9JueI5x9oFRhOX6a3G
creation_date:
20180405
post_id:
-L9JueI5x9oFRhOX6a3G
-L9H2ea9Ygt0pD5f17Ze
creation_date:
20180904
post_id:
-L9H2ea9Ygt0pD5f17Ze
我希望查询返回最后四个元素,但它不返回任何内容。
我还添加了有关 Firebase 安全规则的索引。
谁能帮我找出我做错了什么?
最佳答案
您需要按子项的值进行排序:
Query test = mDatabase.orderByChild("creation_date").startAt(20180904);
这是-L9H3X-qZZt5WiAdsOKE
随 secret 钥,它是子creation_date
的父节点
关于java - Firebase 数据库查询结合 orderByChild 和 startAt 不返回任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49670335/