Android 在Firebase中获取子名称
从上面的数据中,我只想得到项目的子名称 我想知道这些名字Android 在Firebase中获取子名称,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,从上面的数据中,我只想得到项目的子名称 我想知道这些名字 { "items" : { "Chemistry" : { "-KiUOPW8TR_QcEeDbrAy" : { "answer" : "ssssss", "id" : "1", "question" : "sss" } }, "Countries" : { "-KiUR2ilBYN5LJU6uOCf" : {
{
"items" : {
"Chemistry" : {
"-KiUOPW8TR_QcEeDbrAy" : {
"answer" : "ssssss",
"id" : "1",
"question" : "sss"
}
},
"Countries" : {
"-KiUR2ilBYN5LJU6uOCf" : {
"answer" : "ffffff",
"id" : "1",
"question" : "fffff"
}
},
"Film" : {
"-KiUOr7GbPhV_perbHt4" : {
"answer" : "dddd",
"id" : "1",
"question" : "dd"
}
}
}
我该怎么做?要获取这些名称,请使用以下代码:
Chemistry
Countries
Film
可能的重复项请在问题中添加firebase数据库标签。谢谢你,伙计
String name=ds.getKey(String.class)代码>没有再次编辑的方法DataSnapshot.getKey(类)
。谢谢您不需要将键强制转换为字符串
。顺便说一句,看起来您不小心删除了ref
变量。不工作..我使用了childListener,现在可以工作..谢谢
DatabaseReference itemsRef = FirebaseDatabase.getInstance().getReference().child("items");
ValueEventListener eventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()) {
String name = ds.getKey();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.d("TAG", databaseError.getMessage()); //Don't ignore potential errors!
}
};
itemsRef.addListenerForSingleValueEvent(eventListener);