我在firebase中有以下数据:
"posts": {
"ts-functions": {
"metrics": {
"views" : 100,
"likes" : 251000,
"shares": 1200,
},
"title" : "Why you should use TypeScript for writing Cloud Functions",
"author": "Doug",
},
"android-arch-3": {
"metrics": {
"views" : 100,
"likes" : 117000,
"shares": 144,
},
"title" : "Using Android Architecture Components with Firebase Realtime Database (Part 3)",
"author": "Doug",
}
},
可以这样查询吗?
mDatabase.child("posts").child(ANYTHING).child("metrics").equalTo(100).addValueEventListener;
我只想获取指标对象。
答案 0 :(得分:0)
首先,感谢您引用了我的两个博客。我了解您可能是从Firebase文档中删除的,但是。 :-)
不幸的是,实时数据库查询中没有通配符。您的查询必须从数据库中完全指定的位置开始。
您不能从子列表中提取特定子,而忽略所有其他相邻子。当您读取数据库中的位置时,必须读取该位置上的所有子级。
答案 1 :(得分:0)
在@Doug的答案中,我喜欢做的是将所有DatabaseReference
的类保留为带参数的常量。
通过这种方式,我不必在很明显的Activity
内创建引用。
private static DatabaseReference root = FirebaseDatabase.getInstance().getReference();
public static DatabaseReference post(String titleKey) {
return root.child(titleKey);
}
public static DatabaseReference metrics(String titleKey) {
return post(titleKey).child("metrics");
}