【问题标题】:Get child names in Firebase在 Firebase 中获取子名称
【发布时间】:2020-09-09 02:53:29
【问题描述】:
{
  "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

我该怎么做?

【问题讨论】:

标签: android firebase firebase-realtime-database


【解决方案1】:

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

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 name = ds.getKey(String.class); 没有方法DataSnapshot.getKey(Class)
  • 再次编辑。谢谢
  • 您无需将密钥投射到String
  • 顺便说一句,您好像不小心删除了 ref 变量。
  • 不工作..我使用 childListener 并且现在工作..谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-02
  • 2016-04-15
  • 2011-01-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多