2017-07-31 74 views
0

所以我有一组孩子,我想获取值,但关键可能是任何东西,所以我需要使用一个变量。但是,当我运行这个代码时,我得到值为空值?String string =“”+ childDataSnapshot.child(key).getValue())

任何想法我做错了什么? '*********

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()); 

     } 
    } 

' ***********这是基于

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 

回答

2

我给我的答案logcat的假设你的数据库结构看起来是这样的:

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

这里是你有value代码:

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

但是childDataSnapshot没有孩子,其值为key。例如,带有密钥33childDataSnapshot也没有33的孩子。相反,你只想得到childDataSnapshot的价值。

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

+1

仁,你就像火力的福尔摩斯和现在你已经把它出来我觉得像华生医生。它如此简单,如此明显。谢谢。 –

相关问题