使用orderbychild和equalto(value,key)的Firebase查询不起作用

时间:2017-01-17 08:41:02

标签: android firebase firebase-realtime-database

我的firebase数据库结构是这样的

items = [
 id{
 country: value
 likes: value
 ...
 }
]

我想查询按喜欢排序的项目并按国家/地区过滤 所以我使用查询orderByChild(“likes”)。equalTo(value,“country”)。limitToFirst(100)

Android代码:

DatabaseReference ref = mDatabase.child(remotePath);

Query recentList = ref.orderByChild("likes");

if(!country.equals("")){
    recentList = recentList.equalTo(country, "country").limitToFirst(100);
}
recentList.addListenerForSingleValueEvent();

但这不会返回任何结果。有办法工作吗? 我的偏好是让它与firebase查询一起使用,而不是因为它已被使用而改变我的数据库结构。

1 个答案:

答案 0 :(得分:1)

当您使用equalTo(/*some value*/)订购查询时,key方法会引用该指定子项。您使用可选的key参数错误。

请参阅this answer和Firebase文档,详细了解equalTo的可选ng build参数。