首页 > 解决方案 > 尝试从 Firebase 数据库中的子值获取密钥

问题描述

我有字符串,我试图从中获取密钥,因此我可以使用该密钥在该密钥位置检索更多值。这是我的查询代码 -

private void xyz()
{
    Query t1 = FirebaseDatabase.getInstance().getReference().child("leaderboard").child(matchnumber).child(conlocation).orderByChild("teamname").equalTo(name1);
    t1.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            String key = dataSnapshot.getKey();
            Toast.makeText(Leaderboard.this, key, Toast.LENGTH_SHORT).show();
        }

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

        }
    });
}

这是我的数据库数据结构。

在此处输入图像描述

所以我正在尝试获取密钥 1、2、3、4,但我将竞赛 1 作为密钥。

标签: javaandroidfirebase-realtime-database

解决方案


如何循环遍历孩子:

......
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

for(DataSnapshot ds: dataSnapshot.getChildren()){
//this runs for every key
String key = ds.getKey();
Toast.makeText(Leaderboard.this, key, Toast.LENGTH_SHORT).show();
}

}

......

对于评论:

.........

for(DataSnapshot ds: dataSnapshot.getChildren()){
//this runs for every key
String key = ds.getKey();
sendKey(key);
........


//new method under your private method
public void sendKey(String key){

//do what ever with the key or keys


}

推荐阅读