2017-07-31 1 views
0

J'ai donc un ensemble d'enfants, que je veux obtenir les valeurs de, mais la clé pourrait être quelque chose que je dois utiliser une variable. Cependant quand je cours ce code je reçois Null pour des valeurs?Chaîne chaîne = "" + childDataSnapshot.child (clé) .getValue())

Des idées que je fais mal? '*********

public void dataSnapshotSift(DataSnapshot dataSnapshot){ 

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

      String key = childDataSnapshot.getKey(); 
      String value = "" + childDataSnapshot.child(key).getValue(); 

      Log.v("Firebase: ", key); 
      Log.v("Firebase: ", "" + childDataSnapshot.child(key).getValue()); 

     } 
    } 

' *********** Voici le LogCat

07-31 23:48:23.702 V/Firebase poss count:: 3 
07-31 23:48:23.702 V/FireBase:: Value:  DataSnapshot { key = T2, value = {33=P00006, 4=P00003, 1=P00001} } 
07-31 23:48:23.702 V/Firebase:: 1 
07-31 23:48:23.702 V/Firebase:: null 
07-31 23:48:23.702 V/Firebase:: 4 
07-31 23:48:23.702 V/Firebase:: null 
07-31 23:48:23.702 V/Firebase:: 33 
07-31 23:48:23.702 V/Firebase:: null 

Répondre

2

Je donne ma réponse en fonction de la hypothèse que la structure de votre base de données ressemble à ceci:

{ 
    T2: { 
     33: P00006, 
     4: P00003, 
     1: P00001 
    }, 
    ... 
} 

Voici le code que vous avez pour value:

String value = "" + childDataSnapshot.child(key).getValue();

Mais childDataSnapshot n'a pas d'enfant avec la valeur key. Par exemple, le childDataSnapshot avec une clé de 33 n'a pas également un enfant de 33. Au lieu de cela, vous voulez juste obtenir la valeur de childDataSnapshot.

String value = "" + childDataSnapshot.getValue();

+1

Jen, tu es comme le Sherlock Holmes de firebase et maintenant que vous avez posé dehors je me sens comme le Dr Watson. C'est si simple, si évident. Je vous remercie. –