firebase、数据库、android studio:不从firebase数据库读取数据
我在数据库中有数据: 我希望读取所有子项(Belgia、Czechy、Polska…),并在文本字段中显示它,但单击按钮后(我不更改数据库中的数据)。 该按钮具有以下功能: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
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,我目前的项目有问题。我在这周检查你的解决方案。谢谢你的帮助。