从Firebase检索的数据始终为null [英] Retrieved data from firebase always null

查看:41
本文介绍了从Firebase检索的数据始终为null的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有数据.我想从Firebase获取数据.这是我的结构:

I have data. I want to get data from Firebase. This is my structure:

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

这是我的结构:

我使用此代码从子级"A01"获取数据,仅 :

And I used this code to get data from child "A01" only:

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();
        }
    }

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

But the data is null. What am I doing wrong now?

推荐答案

这是问题所在

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

您的数据不再与子对象一起存在,因为您位于子对象之内.相反,您应该这样做

Your data no longer exists with children objects since you are inside the children. Instead, you should do this

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

请记住将构造函数放在Data类上

Please remember to have the constructor on the Data class

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

这篇关于从Firebase检索的数据始终为null的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆