Firebase-在Android中从FirebaseListAdapter进行查询

Firebase-在Android中从FirebaseListAdapter进行查询,android,firebase,firebase-realtime-database,pojo,firebaseui,Android,Firebase,Firebase Realtime Database,Pojo,Firebaseui,在Android中,查询照片(POJO)上的每条评论(POJO)的正确方法是什么。在Firebase中,我的照片集具有以下结构: "photos" : { "-KaeuYf9jXcy4oqpRqbi" : {f "entities" : { "type" : { "image" : { "bucket" : "bucket", "prefix" : "https://s3-us-west-2.

在Android中,查询照片(POJO)上的每条评论(POJO)的正确方法是什么。在Firebase中,我的照片集具有以下结构:

"photos" : {
    "-KaeuYf9jXcy4oqpRqbi" : {f
      "entities" : {
        "type" : {
          "image" : {
            "bucket" : "bucket",
            "prefix" : "https://s3-us-west-2.amazonaws.com/",
            "suffix" : "image.jpg"
          }
        }
      },
      "stats" : {
        "liked" : 0
      },
      "text" : "Person Detected!",
      "timestamp" : 1484631194257
    }
}
"comments" : {
    "-KdE6Hwua8d6sBQimPos" : {
      "attachphoto" : {
        "-KaeuYf9jXcy4oqpRqbi" : true
      },
      "attachuser" : {
        "-KaeuYHjkdf9okflslf" : true
      },
      "displayName" : "Gary",
      "text" : "ok",
      "timestamp" : 1487385995844
    },
    "-KdE6IPc-NL-6zGkwXq3" : {
     "attachphoto" : {
        "-KaeuYf9jXcy4oqpRqbi" : true
      },
      "attachuser" : {
        "-KaeuYHjkdf9okflslf" : true
      },
      "displayName" : "Thomas",
      "text" : "ok",
      "timestamp" : 1487385997735
    }
}
收集意见:

"photos" : {
    "-KaeuYf9jXcy4oqpRqbi" : {f
      "entities" : {
        "type" : {
          "image" : {
            "bucket" : "bucket",
            "prefix" : "https://s3-us-west-2.amazonaws.com/",
            "suffix" : "image.jpg"
          }
        }
      },
      "stats" : {
        "liked" : 0
      },
      "text" : "Person Detected!",
      "timestamp" : 1484631194257
    }
}
"comments" : {
    "-KdE6Hwua8d6sBQimPos" : {
      "attachphoto" : {
        "-KaeuYf9jXcy4oqpRqbi" : true
      },
      "attachuser" : {
        "-KaeuYHjkdf9okflslf" : true
      },
      "displayName" : "Gary",
      "text" : "ok",
      "timestamp" : 1487385995844
    },
    "-KdE6IPc-NL-6zGkwXq3" : {
     "attachphoto" : {
        "-KaeuYf9jXcy4oqpRqbi" : true
      },
      "attachuser" : {
        "-KaeuYHjkdf9okflslf" : true
      },
      "displayName" : "Thomas",
      "text" : "ok",
      "timestamp" : 1487385997735
    }
}
在安卓系统中,我使用的是FirebaseAdapter,但我很难定义一个只检索附加到特定照片上的评论的正确查询。我有这张照片的钥匙

FirebaseListAdapter adapter = new CommentAdapter(this, Comment.class, R.layout.item_comment, QUERY){
            @Override
            protected void populateView(View v, Comment model, int position) {
                if(model.getDisplayName()!=null) {
                    String[] name = model.getDisplayName().split(" ");
                    ((TextView) v.findViewById(R.id.id)).setText(name[0]);
                }
                ((TextView) v.findViewById(R.id.content)).setText(model.getText());
            }
        };
我想我可以定义如下:

final FirebaseDatabase database = FirebaseDatabase.getInstance();
final DatabaseReference commentsRef = database.getReference("comments");
Query query = commentsRef.orderByChild("attachphoto").equalTo()

但我在如何完成这件事上有些分歧。第一个使用Firebase的项目,因此任何帮助/提示都将不胜感激

Firebase相当于noSQL,因此必须克服一些限制。。。尤其是在设计数据结构时。例如,在这种情况下,将相关用户和注释(甚至是所有相关注释)的ID添加到表示照片的结构的嵌套节点中可能是有意义的。还有其他方法可以到达那里,而人们总是需要考虑以后如何查找细节(因为结构决定了哪些查询是可能的,哪些是不可能的)。看到了吗,谢谢你!StringBuilder子级=新的StringBuilder(“attachphoto/”);附加(imageKey);Query Query=commentsRef.orderByChild(child.toString()).equalTo(Boolean.TRUE);