Ceci est une grande question sur la différence entre l'exécution d'une requête sur des données Firebase vs accéder aux données sans utiliser la classe de requête.Est-ce que le DataSnapshot retourné par l'ajout d'un auditeur à une requête différente à celle d'un ajouté directement à un DatabaseReference
Voici la structure d'une requête, tirée de la documentation et dégrossi un peu:
DatabaseReference myRef = database.getReference("Users");
Query exampleQuery = myRef.orderByChild("age");
exampleQuery.addChildEventListener(new ChildEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot postSnapshot: dataSnapshot.getChildren()) {
// Do something...
}
}
});
regardant et la lecture que l'on doit augmenter sur la DataSnapshot, me conduire à se demander si elle diffère à la DataSnapshot retured dans l'exemple ci-dessous, et sinon, est-il exact de penser à la classe de requête comme rien de plus qu'un intermédiaire pour ajouter le tri et le filtrage des données avant de travailler avec elle, et donc bien d'ajouter une boucle quand ne pas utiliser la classe de requête, comme dans l'exemple ci-dessous?
DatabaseReference myRef = database.getReference("Users");
myRef.addChildEventListener(new ChildEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot postSnapshot: dataSnapshot.getChildren()) {
// Do something...
}
}
});
Je me rends compte que cette question peut sembler banal, mais je n'ai pas rencontré des exemples d'une boucle utilisée lorsque la classe de requête n'est pas, me donc vouloir confirmer que les deux ne sont pas liés.