实时数据库获取名称和值

时间:2016-07-29 12:52:04

标签: android listview firebase firebase-realtime-database

我正在使用firebase实时数据库。

用户名如 - user1,然后是他要求的一些耗材,如耗材名称 - 标记,然后是数量 - 如5。

这是我的JSON文件

    {
  "Users" : {
    "User1" : {
      "Markers" : 5,
      "Scissors" : 1,
      "Staplers" : 4
    },
        "User2" : {
      "Markers" : 2,
      "Scissors" : 5,
      "Staplers" : 3
    }
  }
}

我希望以下列格式取回耗材:

标记5

剪刀1

Staplers 4

信息通过列表视图发出,但我不知道如何通过列表视图获取名称和数量,我只能得到其中一个。

我用来获取名称的代码是:

            Set<String> set = new HashSet<String>();
            Iterator i = dataSnapshot.getChildren().iterator();

            while (i.hasNext()) {
                set.add(((DataSnapshot) i.next()).getKey());
            }

我用来获取数量的代码是:

// two first lines are the same
            while (i.hasNext()) {
                set.add(((DataSnapshot) i.next()).getValue().toString());
            }

2 个答案:

答案 0 :(得分:1)

尝试这样的事情:

#define value1 *(int*)46

此外,您可能刚刚将for (DataSnapshot supply : dataSnapshot.getChildren()) { String key = supply.getKey(); String value = supply.getValue(); } 保存到变量中,然后您可以在同一循环中访问i.next()key,而无需调用其他value(我推测就是问题所在。)

答案 1 :(得分:1)

我已将脚本更改为此

            key = (((DataSnapshot) i.next()).getKey());
            value = ((dataSnapshot).child(key).getValue().toString());
            set.add(key+" "+value);
无论如何,它的效果非常好。