从Firebase检索没有标签的孩子

时间:2019-01-29 10:59:07

标签: java android firebase firebase-realtime-database

我正在尝试从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
               }}

反正我可以检索类别吗?

1 个答案:

答案 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();
  }
});