android - 带有 orderbychild 和 equalto(值,键)的 Firebase 查询不起作用

标签 android firebase firebase-realtime-database

<分区>

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

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

我想查询按喜欢排序并按国家过滤的项目 所以我使用查询 orderByChild("likes").equalTo(value, "country").limitToFirst(100)

安卓代码:

DatabaseReference ref = mDatabase.child(remotePath);

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

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

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

最佳答案

当您使用 orderByChild("/*some child*/") 对查询进行排序时,equalTo(/*some value*/) 方法引用指定的 child 。您错误地使用了可选的 key 参数。

参见 this answer和 Firebase 文档以阅读有关 equalTo 的可选 key 参数的更多信息。

关于android - 带有 orderbychild 和 equalto(值,键)的 Firebase 查询不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41692457/

相关文章:

android - 使用安装和推送的 adb 协议(protocol)失败

javascript - 如何在没有新 key 的情况下更新现有父级的一个 Firebase 子级?

ios - 我是否必须始终删除 Firestore 中的监听器?

java - 在聊天应用程序中获取上次上线时间

android - 迷你应用程序安卓三星

android - 如何在android中使用Zxing

Android ActionBarSherlock 在 Honeycomb/Galaxy Tab 上出错

ios - 为同一个新对象多次调用 Firebase FEventTypeChildAdded 回调

android - “Can' t 找到 [com/google/android/gms/internal/zzata] 的公共(public)父类(super class)

Angularfire2 显示 "Missing permissions"错误,而直接运行 firebase 没有问题