我的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查询一起使用,而不是因为它已被使用而改变我的数据库结构。
答案 0 :(得分:1)
当您使用equalTo(/*some value*/)
订购查询时,key
方法会引用该指定子项。您使用可选的key
参数错误。
请参阅this answer和Firebase文档,详细了解equalTo
的可选ng build
参数。