Firebase/android comment sortir les enfants des clés et des valeurs?
J'ai cette DB:
users: {
0 : {
name: xx
age: 11
books:{
0 : true
3 : true
}
}
1 : {
name: yy
age: 12
books:{
1 : true
4 : true
}
}
}
J'ai réf db sla:
database = FirebaseDatabase.getInstance();
refdb = database.getReference();
de requête et de la sla:
Query = refdb.child("users");
j'ai besoin d'obtenir toutes les paires (nom:) et pour les utilisateurs paires de livres (id:true) als:
0 : true
3 : true
Je suis en utilisant ce pour avoir des paires (id:true):
refdb.child("users").child("books").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
pck.setText(pack);
for (DataSnapshot dttSnapshot2 : dataSnapshot.getChildren()) {
pack = dttSnapshot2 .getKey().toString()+":"+dttSnapshot2 .getValue().toString();
pck.append(pack);
}
...
Où pck c'est un textView.
Mon problème est que chaque fois qu'il a l'impression que la chaîne vide dans textView.
Comment puis-je obtenir ces données et de les écrire dans un textview?
- "livres" n'est pas un enfant de la "utilisateurs" nœud. Attacher un écouteur pour le nœud d'utilisateurs et de prendre le cliché, et ensuite chercher le livre nœud à l'intérieur de l'instantané
- merci pour votre réponse, donc je dois créer une requête de la sla Query1 = refdb.enfant (les"utilisateurs").enfant("livres"); et après faire un instantané pour les livres de l'enfants?
- les utilisateurs est votre nœud racine avec 0, 1.. comme des nœuds enfants. Ensuite, ces nœuds enfants sont les nœuds parents pour le nom, l'âge et les livres. Ainsi afin d'atteindre des livres, vous devez passer par les utilisateurs>0,1..>livres.
- ok, mais pourquoi je peux obtenir le nom de la valeur (et pas de paires (nom de valeur:)) si je dois contourner les utilisateurs, les enfants de 0,1,2,..,n? comment puis-je obtenir des livres d'enfants? 0,1,2,..,n sont maintenant siply nombre, mais plus tard, sera univoque clés. comment puis-je contourner-ils?
Vous devez vous connecter pour publier un commentaire.
Je n'ai pas testé ce code, dès maintenant, mais j'espère que vous obtenez l'idée. L'ID unique noeuds ne peuvent pas être ignorée parce que firebase ne sait pas où l'id unique que vous souhaitez extraire des données à partir. Donc soit passer par tous les Id uniques en utilisant une boucle foreach ou spécifier l'ID unique à partir de laquelle vous souhaitez que les données.