firebase、数据库、android studio:不从firebase数据库读取数据

firebase、数据库、android studio:不从firebase数据库读取数据,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我在数据库中有数据: 我希望读取所有子项(Belgia、Czechy、Polska…),并在文本字段中显示它,但单击按钮后(我不更改数据库中的数据)。 该按钮具有以下功能: public void f_btn_zaczytaj_dane(View view) { myRef.addListenerForSingleValueEvent(new ValueEventListener() { @Override public void onDataChang

我在数据库中有数据:

我希望读取所有子项(Belgia、Czechy、Polska…),并在文本字段中显示它,但单击按钮后(我不更改数据库中的数据)。 该按钮具有以下功能:

public void f_btn_zaczytaj_dane(View view) {
    myRef.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            String value = dataSnapshot.getValue(String.class);
            TextView txt_opis_panstwa = (TextView) findViewById(R.id.txt_opis_panstwa);
            txt_opis_panstwa.setText(value);
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

}
在我编写代码之前:

FirebaseDatabase database;
DatabaseReference myRef;

database = FirebaseDatabase.getInstance();
myRef = database.getReference("kraj");
不幸的是,当我按下按钮时,什么也没发生

我将感谢你的帮助
您好,Marcin您必须反复查看您的孩子

public void f_btn_zaczytaj_dane(View view) {
    myRef.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            TextView txt_opis_panstwa = (TextView) findViewById(R.id.txt_opis_panstwa);
            for (DataSnapshot country : dataSnapshot.getChildren()) {
             txt_opis_panstwa.append(country.getKey());
            }
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

}
请使用此代码:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference krajRef = rootRef.child("flagiistolice").child("kraj");

public void f_btn_zaczytaj_dane(View view) {
    ValueEventListener eventListener = new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            TextView txt_opis_panstwa = (TextView) findViewById(R.id.txt_opis_panstwa);
            for(DataSnapshot ds : dataSnapshot.getChildren()) {
                String country = ds.getkey();
                txt_opis_panstwa.append(country);
                Log.d("TAG", country);
            }
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {}
    };
    krajRef.addListenerForSingleValueEvent(eventListener);
}

当我触发此代码时,当我按下按钮时,文本字段仍然为空。如果函数“onDataChange”没有对日志执行确保调用了void,在方法中放置toast以选中Yes,当我单击按钮结束执行函数“f_btn_zaczytaj_dane”时会显示toast。firebase数据库规则是否设置为允许此?Alex,但是“f_btn_zaczytaj_dane”函数在哪里?Alex,我目前的项目有问题。我在这周检查你的解决方案。谢谢你的帮助。