0
votes

Afficher des données spécifiques en utilisant la clé de Firebase

Je suis nouveau au développement Android et à Firebase, donc cela peut être une question simple.

Je souhaite développer une application correspondant au nom du petit-enfant dans la Firebase, puis obtenez les données de la clé qui l'entoure mais Le problème est que lorsque je récupère les données, il obtient la valeur de tous les nœud enfants de la base de données.

< / p>

Voici le code que j'ai fait xxx

le résultat est

{message = "...", priorité = "..", nom = "...", heure = "..."}

mais le résultat que je veux est seul nom et priorité

{message = "..", nom = ".."}

existe-t-il un moyen de spécifier l'itinéraire des données extraites?


1 commentaires

C'était comme si je devais taper le nom sur l'Edittext et il se comparera au petit-enfant (dans ce cas est "AA") si elle est égale à l'autre, je souhaite que mon application affiche uniquement le message et le nom sur TextView


3 Réponses :


1
votes

Pourquoi ne faites-vous pas d'abord analyser le JSON dans un objet, puis utilisez uniquement les paramètres requis dont vous avez besoin. Pour analyser, vous pouvez utiliser la bibliothèque SimpleJson.


0 commentaires

1
votes

Pour pouvoir récupérer le nom et le message Vous pouvez procéder comme suit: xxx

dans le code ci-dessus, vous sera en mesure de récupérer le nom et du message , puis vérifiez si le nom est égal à la valeur écrite dans la barre de recherche . Après cela, vous pouvez attribuer le message à un textview


2 commentaires

Donc, je n'ai pas à faire la boucle pour obtenir les données que je veux bien?


Vous faites pour boucle s'il existe un nœud entre votre nœud actuel et les données que vous souhaitez obtenir, exemple si vous avez "Data / ID / nom: AA". Ici, dans ce cas, vous faites une boucle, mais dans votre base de données, vos enfants sont immédiatement sous "Data"



1
votes

Vous pouvez interroger à travers votre grand enfant. Supposons que vous souhaitiez rechercher par nom strong> de votre base de données. Pour ce faire, suivez le code ci-dessous

        DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference("Data");

        Query query = databaseReference.orderByChild("name")
             .startAt(mSearchText)
             .endAt(mSearchText+"\uf8ff");

        query.addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {

                    for (DataSnapshot data:dataSnapshot.getChildren()){

                         String name = data.child("name").getValue().toString();
                         String priority = data.child("Priority").getValue().toString();

                    }

                }

                @Override
                public void onCancelled(DatabaseError databaseError) {

                }
            });


0 commentaires