我正在尝试从Firebase检索没有标签/名称的子节点。我知道这不是在Firebase中存储子节点的正确方法,这是我可以存储它们以使count函数正常工作的唯一方法。
我正在尝试检索“技术”或“生物与生态”等类别。我的数据库设置如下:
var researchesWithId1 = db.Researches
.Where(research => research.ChiefManagerId == 1)
.ToList();
我可以使用以下方法检索项目名称(即“ Project 23”,“ Project 32”)和投票数:
CountLikes{
Project 23{
Biological and Ecological{
Votes: 1
}}
Project 32{
Biological and Ecological{
Votes: 0
}}
Project 439{
Technology{
Votes: 2
}}
反正我可以检索类别吗?
答案 0 :(得分:1)
我不清楚您的数据结构的含义,这使得很难准确地了解您要查找的内容。但是此代码将使用您当前拥有的侦听器遍历整个DataSnapshot
:
DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("CountLikes");
ref.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot child: dataSnapshot.getChildren()) {
System.out.println(child.getKey()); // prints "Project 23", "Project 32", etc
for(DataSnapshot grandchild: child.getChildren()) {
System.out.println(grandchild.getKey()); // prints "Biological and Ecological", etc
System.out.println(grandchild.child("Votes").getValue(Long.class)); // prints 1, 0, etc
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
throw databaseError.toException();
}
});