Firebase récupérer l'enfant Android
Je suis accédant à Firebase sur Android. Je veux récupérer un enfant à partir de l'arbre. Mon code est (mis à jour)
f.child("Germany").child("Username").child("Alan Turing").addChildEventListener(new ChildEventListener() {
//Retrieve new posts as they are added to Firebase
@Override
public void onChildAdded(DataSnapshot snapshot, String previousChildKey) {
Map<String, Object> newPost = (Map<String, Object>) snapshot.getValue();
System.out.println("Author: " + newPost.get("Message"));
disp_msg = (TextView)findViewById(R.id.display_msg);
disp_msg.setText(newPost.get("Message").toString());
//System.out.println("Title: " + newPost.get("title"));
}
Dans mon firebase j'ai
Language
Germany
Username
Alan Turing
Message
-Jf6ShYy7niHrqg_x4Tc: "tom"
-Jf9v0xHAxINUUANrORU: "perfect"
Quand j'ai couru le code ci-dessus, j'obtiens:
Author: {
Username={
Alan Turing={
Message={
-Jf6ShYy7niHrqg_x4Tc=tom,
-Jf9v0xHAxINUUANrORU=perfect!
}
}
}
}
Mais je ne veux que les messages, et non pas l'ensemble de Firebase base de données.
Alors, comment puis-je obtenir seulement l'enfant spécifié?
seulement cela fonctionne jusqu'à présent, mais il revient tout firebase:
f.addChildEventListener(new ChildEventListener() {
//Retrieve new posts as they are added to Firebase
@Override
public void onChildAdded(DataSnapshot snapshot, String previousChildKey) {
Map<String, Object> newPost = (Map<String, Object>) snapshot.getValue();
System.out.println("Author: " + newPost.get("Germany"));
disp_msg = (TextView)findViewById(R.id.display_msg);
disp_msg.setText(newPost.get("Germany").toString());
//System.out.println("Title: " + newPost.get("title"));
}
Je le garde comme suit:
Firebase usersRef = f.child("Language");
usersRef .child("Germany").child("Username").child("Alan Turing").child("Message").push().setValue(writeMsgField.getText().toString());
- Connexes: stackoverflow.com/questions/27826007/...
- Merci de ne pas le modifier de votre code existant, comme il le fait d'incompatibilité avec ma réponse. Ajouter l'information est bien, mais laisser le code d'origine/question intact (sauf si vous êtes juste clarifier les choses).
- oui, j'ai ajouté le code d'origine tout en bas
Vous devez vous connecter pour publier un commentaire.
Vous pouvez vous adresser à des nœuds enfants directement , par la construction d'une Firebase de référence de la racine:
ou un peu plus conciser:
Vous devriez vraiment suivre le Firebase guide Android, parce que la structure de données est couvert tout à fait bien dans le sujet sur comment les données sont structurées dans Firebase. Passé un certain temps sur ce guide vous fera économiser beaucoup de temps (et beaucoup de questions) plus tard.
ref.child('Alan Turing/Message').once('value', function(s) { console.log(JSON.stringify(s.val())); })
sans aucun problème avec Firebase de l'API JavaScript, alors attendez-vous à de l'API Java pour fonctionner de la même. Plus probable que votre structure de données est différente. Voyez si vous pouvez l'obtenir auprès de votre Firebase tableau de bord ou avec le bout de code JavaScript que je viens de faire et ajouter votre question.