字符串 string = "" + childDataSnapshot.child(key).getValue())

String string = "" + childDataSnapshot.child(key).getValue())

所以我有一组 children,我想获取它的值,但键可以是任何东西,所以我需要使用一个变量。但是,当我 运行 这段代码时,我得到 Null for values?

知道我做错了什么吗? '*********

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

        }
    }

'*********** 这里是 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

我的回答基于假设您的数据库结构如下所示:

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

这是 value 的代码:

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

但是 childDataSnapshot 没有值为 key 的 child。例如,键为 33childDataSnapshot 也没有 33 的 child。相反,您只想获取 childDataSnapshot.

的值

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