我有资料我想从Firebase获取数据。这是我的结构:

"data" : {
   "A01" : {
     "status" : 1,
     "tglkeluar" : "12-03-2019"
    },
   "A02" : {
     "status" : 1,
     "tglkeluar" : "10-03-2019"
   }
 },


这是我的结构:



而且我使用以下代码仅从子代“ A01”获取数据:

mDatabaseA01 = FirebaseDatabase.getInstance().getReference("data").child("A01");
mDatabaseA01.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
        for(DataSnapshot postSnapshot : dataSnapshot.getChildren()){
            Data status = postSnapshot.getValue(Data.class);
            Toast.makeText(HalamanAdmin.this, status.getStatus(), Toast.LENGTH_SHORT).show();
        }
    }


但是数据为空。我现在在做什么错?

最佳答案

这是问题所在

for(DataSnapshot postSnapshot : dataSnapshot.getChildren()){
    Data status = postSnapshot.getValue(Data.class);
    Toast.makeText(HalamanAdmin.this, status.getStatus(), Toast.LENGTH_SHORT).show();
 }


由于您位于子对象中,因此子对象不再存在您的数据。
相反,您应该这样做

Data status = new Data(dataSnapshot.get("status"), dataSnapshot.get("tglkeluar");


请记住在Data类上有构造函数

public Data(String status, String tglkeluar){
    this.status = status;
    this.tglkeluar = tglkeluar;
}

关于java - 从Firebase检索的数据始终为null,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55119601/

10-11 19:38
查看更多