在Firebase中获取子名称

Ash*_*ery 1 android firebase firebase-realtime-database

{
  "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"
      }
    }
}
Run Code Online (Sandbox Code Playgroud)

从以上数据中,我只想获取项目的子名称。

例如。我想得到这些名字

Chemistry 
Countries 
Film
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

Ale*_*amo 5

要获得这些名称,请使用以下代码:

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) {}
};
itemsRef.addListenerForSingleValueEvent(eventListener);
Run Code Online (Sandbox Code Playgroud)