Android Firebase信息显示在ListView的一个列表项中

Android Firebase信息显示在ListView的一个列表项中,android,firebase,firebase-realtime-database,android-arrayadapter,Android,Firebase,Firebase Realtime Database,Android Arrayadapter,这是我的代码,它在列表视图的一个项目中显示从Fire base返回的所有信息,该应用程序连接到Fire base 谁能帮我翻译一下代码吗 public class usernews extends AppCompatActivity { FirebaseDatabase database = FirebaseDatabase.getInstance(); final DatabaseReference myRef = database.getReference("allNews"

这是我的代码,它在列表视图的一个项目中显示从Fire base返回的所有信息,该应用程序连接到Fire base

谁能帮我翻译一下代码吗

public class usernews extends AppCompatActivity {
    FirebaseDatabase database = FirebaseDatabase.getInstance();
    final DatabaseReference myRef = database.getReference("allNews");
    private ListView lsStudents;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_usernews);
        lsStudents=(ListView) findViewById(R.id.list);
        ...
    }
    ...
}
我想这里有一些错误,但我找不到

myRef.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        // This method is called once with the initial value and again
        // whenever data at this location is updated.

        final List<String> areas = new ArrayList<String>();
        for (DataSnapshot areaSnapshot: dataSnapshot.getChildren()) {
            String value1 = String.valueOf(dataSnapshot.getValue());
            areas.add(value1);
        }

        String value2 = String.valueOf(dataSnapshot.getValue());
        Log.d("allNews", "Value is: " + value2);

        ArrayAdapter<String> areasAdapter = new ArrayAdapter<String>(usernews.this,android.R.layout.simple_expandable_list_item_1, areas);
        lsStudents.setAdapter(areasAdapter);
    }
});
myRef.addValueEventListener(新的ValueEventListener(){
@凌驾
公共void onDataChange(DataSnapshot DataSnapshot){
//使用初始值调用此方法一次,然后再次调用
//每当更新此位置的数据时。
最终列表区域=新的ArrayList();
对于(DataSnapshot areaSnapshot:DataSnapshot.getChildren()){
String value1=String.valueOf(dataSnapshot.getValue());
增加(价值1);
}
String value2=String.valueOf(dataSnapshot.getValue());
Log.d(“所有新闻”,“值为:”+value2);
ArrayAdapter areasAdapter=新的ArrayAdapter(usernews.this,android.R.layout.simple\u expandable\u list\u item\u 1,areas);
lsStudents.setAdapter(区域适配器);
}
});
Firebase数据的屏幕截图


引用正确节点后的屏幕截图

更改您的
数据库引用

用这个

final DatabaseReference myRef = database.getReference("allNews").child("allNews");
而不是

final DatabaseReference myRef = database.getReference("allNews");
您的实际数据位于
“allNews”
标记内。最终,它的子节点也具有相同的名称

然后更新for循环。您从错误的引用中获取数据

final List<String> areas = new ArrayList<String>();
for (DataSnapshot areaSnapshot: dataSnapshot.getChildren()) {
    // Get value from areaSnapShot not from dataSnapshot
    String value1 = String.valueOf(areaSnapshot.getValue());
    areas.add(value1);
}
final List areas=new ArrayList();
对于(DataSnapshot areaSnapshot:DataSnapshot.getChildren()){
//从areaSnapShot而不是从dataSnapshot获取值
String value1=String.valueOf(areaSnapshot.getValue());
增加(价值1);
}

您能否显示Firebase数据的节点结构添加节点结构的屏幕截图i'v添加任何错误消息上方图像的链接?日志条目?请阅读@rahulkapoor:请以JSON文本的形式要求提供数据结构的截图,而不是截图(因为截图在回答中不可用,无需再次键入数据)。获取数据结构的最佳方式是纯JSON文本,OP可以通过单击Firebase数据库控制台中的导出JSON链接来获取该文本。我更改了它,但它仍然为我提供了许多列表项,但它们都包含所有Firebase信息。您得到了什么样的响应,你说的所有firebase信息是什么意思?我添加了另一个链接,你可以查看它谢谢很多人你的救命恩人它终于正常工作了谢谢