J'essaie de comprendre les groupes dans la base de données Firebase. J'ai donc créé un index simple appelé genres que j'ai placé dans mon nœud de stations.
"STATIONS": {
"GENRES": {
"D&B": {
"RODR": false
},
"HipHop": {
"RODR": false
},
"TRANCE": {
"RODR": true
}
},
"RODR": {
"PROMOTED": false,
"downvote": 2,
"image": "image url",
"station": "Revolution Of Dance Radio",
"tag": "We Are The Revolution",
"upvote": 1001,
"url": "to be added"
},
"UKNRADIO": {
"Promoted": false,
"downvote": 2,
"image": "url for image",
"station": "UKN RADIO",
"tag": "The Home Of The Mashup",
"upvote": 1001,
"url": "to add"
}
},
puis j'ai ces enfants dans un noeud séparé avec la clé définie comme étant la même que la clé de l'index.
comment puis-je interroger le noeud genre pour obtenir tous les éléments dans l'index trance ? qui dans cet exemple serait RODR ?
Edit*** cette valeur permet d'accéder au bon enfant dans mon nœud Genres.
String value = getArguments().getString("Genre");
Log.i("Genre_bundle",value);
Voici le code de base pour afficher ma liste
String DATABASE_CHILD = "STATIONS";
ref = db.getReference().child(DATABASE_CHILD);
Edit**** 26/03/2021 J'ai essayé de configurer la requête dans un listener séparé pour obtenir la clé dont j'ai besoin. Cela fonctionne mais seulement s'il n'y a qu'un seul élément dans le nœud. Dès que j'en ajoute un deuxième, par exemple uknradio= true, il ne s'affiche pas.
String DATABASE_CHILD = "STATIONS";
ref = db.getReference().child(DATABASE_CHILD).child("GENRES").child(value);
Query query = ref.orderByValue().equalTo(true);
query.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
for (DataSnapshot dataSnapshot: snapshot.getChildren())
KEYS = dataSnapshot.getKey();
Log.i("KEY", KEYS);
getStations(KEYS);
}
private void getStations(String Key) {
String DATABASE_CHILD = "STATIONS";
ref1 = db.getReference().child(DATABASE_CHILD);
ref1.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
for (DataSnapshot snap : snapshot.getChildren()) {
String key_Checker = snap.getKey();
if (KEYS.matches(key_Checker)) {
Log.i("KEY", "Present");
Edit 26/3/2021 (Suppression du lien vers un tutoriel inutile sur les .index dans les paramètres de sécurité)