获取Firebase中子节点的名称

3
{
  "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

我该怎么做?

10
可能是如何从Firebase中的值获取键的重复问题。 - Selvin
请在您的问题中添加 firebase-database 标签。谢谢! - Paulo Mattos
1个回答

9
获取这些名称,请使用以下代码:
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);

您不需要将键转换为“String”。 - Paulo Mattos
顺便说一下,看起来你不小心删除了你的 ref 变量。 - Paulo Mattos
不起作用了..我使用了childListener,现在可以工作了..谢谢 - Ashique bzq

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接