"news" : {
"-KnLRSIOyD7HgldFGty" : {
"caption" : "some grounds",
"content" : "some contents",
"created_on" : 1498246403444,
"newspaper_id" : "-KnLPu2N5039ZbqS",
"status" : false,
"thumbnail" : "thumbnail/1498254125498",
},
}
"newspapers" : {
"-KnLRSIOyD7HgldFGty" : {
"logo" : "logo/1498245996906",
"paper_name" : "NewsOnline"
},
}
我想过滤firebase来做这样的事情。
mDatabaseRef.child("news").orderByChild("newspaper_id").equalTo(id).orderByChild("status").equalTo(false);
由于多个orderBy()将在firebase中抛出异常,因此实现过滤器的另一种方法是什么。
答案 0 :(得分:0)
目前Firebase仅支持每个查询一个orderBy。
因此,如果您想要在多个属性上过滤或排序结果(在您的情况下为2个查询),您必须在Android代码中进行额外的过滤(或排序)客户端或您必须提出自己的索引方案,并将这些属性组合在一起。
在你的情况下,我建议你添加一个名为newspaperId_status
的新子项,它可以将值作为这两个值的连接值,如下所示:
newspaperId_status: -KnLPu2N5039ZbqS_false
通过这种方式,您可以查询状态为false
的所有新闻人员。
希望它有所帮助。