Android 从Firebase检索键值

Android 从Firebase检索键值,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,如何从Firebase中仅检索键值而不是子值。我只想检索“comp232”和“comp231”,如图所示 主题详情 Comp 232 主题名称:数据库 教师姓名:教师1 薪酬231 学科名称:微力教授 教师姓名:教师2 (我希望检索comp 232和comp 231) 这是我的代码…但这不起作用: final ArrayAdapter<String> myArrayAdapter = new ArrayAdapter<String>(this,androi

如何从Firebase中仅检索键值而不是子值。我只想检索“comp232”和“comp231”,如图所示

  • 主题详情
    • Comp 232
      • 主题名称:数据库
      • 教师姓名:教师1
    • 薪酬231
      • 学科名称:微力教授
      • 教师姓名:教师2
(我希望检索comp 232和comp 231)

这是我的代码…但这不起作用:

final ArrayAdapter<String> myArrayAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,myArrayList);
myDataBase = FirebaseDatabase.getInstance().getReference();
myListView = findViewById(R.id.ListView);
myListView.setAdapter(myArrayAdapter);

myDataBase.addChildEventListener(new ChildEventListener() {

    @Override
        public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
            String Value = dataSnapshot.child("Subject Details").getKey();
            myArrayList.add(Value);
            myArrayAdapter.notifyDataSetChanged();
        }

        @Override
        public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
            myArrayAdapter.notifyDataSetChanged();
        }

        @Override
        public void onChildRemoved(@NonNull DataSnapshot dataSnapshot) {

        }

        @Override
        public void onChildMoved(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {

        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {

        }
    });
final ArrayAdapter myArrayAdapter=new ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,myArrayList);
myDataBase=FirebaseDatabase.getInstance().getReference();
myListView=findViewById(R.id.ListView);
setAdapter(myArrayAdapter);
myDataBase.addChildEventListener(新的ChildEventListener(){
@凌驾
公共void onChildaded(@NonNull DataSnapshot DataSnapshot,@null字符串s){
字符串值=dataSnapshot.child(“主题详细信息”).getKey();
myArrayList.add(值);
myArrayAdapter.notifyDataSetChanged();
}
@凌驾
public void onChildChanged(@NonNull DataSnapshot DataSnapshot,@null字符串s){
myArrayAdapter.notifyDataSetChanged();
}
@凌驾
公共void onChildRemoved(@NonNull DataSnapshot DataSnapshot){
}
@凌驾
public void onChildMoved(@NonNull DataSnapshot DataSnapshot,@null字符串s){
}
@凌驾
已取消的公共void(@NonNull DatabaseError DatabaseError){
}
});

您从错误的数据库级别读取数据。您想开始收听
/Subject Details
,然后将每个孩子添加到列表中:

myDatabase = FirebaseDatabase.getInstance().getReference("Subject Details");
myListView = findViewById(R.id.ListView);
myListView.setAdapter(myArrayAdapter);

myDatabase.addChildEventListener(new ChildEventListener() {
    @Override
    public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
        String Value = dataSnapshot.getKey();
        myArrayList.add(Value);
        myArrayAdapter.notifyDataSetChanged();
    }
    ...