Quelle est la bonne façon d'interroger chaque commentaire (POJO) attaché à une photo (POJO) dans Android. En Firebase, j'ai la structure suivante pour une collection:Firebase - Interrogation à partir de FirebaseListAdapter dans Android
"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
}
}
et pour la collecte de commentaires:
"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
}
}
Dans Android J'utilise un FirebaseAdapter, mais je ne parviens pas à définir une requête appropriée cela ne ferait que récupérer les commentaires attachés à une photo spécifique. J'ai la clef de la photo
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());
}
};
Je pensais que je pourrais définir quelque chose comme:
final FirebaseDatabase database = FirebaseDatabase.getInstance();
final DatabaseReference commentsRef = database.getReference("comments");
Query query = commentsRef.orderByChild("attachphoto").equalTo()
Mais je vais avoir une déconnexion sur la façon de finir. Premier projet utilisant Firebase, donc toute aide/conseils serait très appréciée! Firebase est plutôt noSQL, donc il y a des limites que l'on doit contourner ... spécialement lors de la conception de la structure de données.
Il semble que vous essayez de placer les commentaires dans des catégories. Voir http://stackoverflow.com/questions/40656589/firebase-query-if-child-of-child-contains-a-value –
Merci qui a fonctionné! StringBuilder enfant = nouveau StringBuilder ("attachphoto /"); child.append (imageKey); Requête query = commentsRef.orderByChild (child.toString()). EqualTo (Boolean.TRUE); – gareoke