我是Android Studio和Firebase本身的新手。我理解,为了从其唯一的ID中获取孩子的数据,我可能需要使用data方法。例如,我需要将name从Firebase数据库检索回android应用程序。在这种情况下,如何实现它?我会非常感谢你的帮助!
{
"0Zs7aiWplRRJ5IJ5pazuUOxIdqz2" : {
"name" : "yeo",
"pos" : "intern",
"team" : "nwrs"
},
"kaLCjJFoGETWCWH42kNkc90b5Ku1" : {
"2016" : {
"9" : {
"25" : {
".priority" : 0.0,
"AM" : "",
"OT" : "",
"OVN" : "",
"PM" : "",
"TPT" : ""
}
},
"10" : {
"1" : {
".priority" : 0.0,
"AM" : "zxc11",
"OT" : "12",
"OVN" : "33",
"PM" : "222",
"TPT" : "54"
},
"26" : {
"AM" : "aa",
"OVN" : "gg",
"PM" : "ccc",
"TPT" : ""
},
"29" : {
".priority" : 0.0,
"AM" : "dd",
"OVN" : "aa",
"PM" : "ss",
"TPT" : "2fd"
}
}
},
"name" : "Jing Yang",
"pos" : "Intern",
"team" : "NWRS"
}
}下面是我的当前代码
root.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Set<String> set = new HashSet<String>();
Iterator i = dataSnapshot.getChildren().iterator();
while (i.hasNext()){
set.add(((DataSnapshot)i.next()).getKey());
}
names.clear();
names.addAll(set);
arrayAdapter.notifyDataSetChanged();发布于 2016-10-25 02:50:04
我假设root引用数据库的根。在这种情况下,您的onDataChange将在该位置获取整个数据的快照。您可以遍历它们,然后依次获得每个子节点的属性:
root.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Set<String> set = new HashSet<String>();
for (DataSnapshot childSnapshot: dataSnapshot.getChildren()) {
//set.add(childSnapshot.getKey());
set.add(childSnapshot.child("name").getValue(String.class));
}
names.clear();
names.addAll(set);
arrayAdapter.notifyDataSetChanged();但我强烈建议您创建一个Java类,它表示列表中的项。在您的情况下,这可以非常简单,如:
public class Item {
public string name;
public string pos;
public string team;
}然后,您可以使用以下内容阅读这些项目:
root.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Set<String> set = new HashSet<String>();
for (DataSnapshot childSnapshot: dataSnapshot.getChildren()) {
Item child = childSnapshot.getValue(Item.class);
set.add(item.name);
}
names.clear();
names.addAll(set);
arrayAdapter.notifyDataSetChanged();https://stackoverflow.com/questions/40230098
复制相似问题