如何检索图像url表单firebase数据库andriod

时间:2016-11-19 12:33:57

标签: android firebase nullpointerexception firebase-realtime-database picasso

我正在开发一个android项目,我使用firebase作为我的后端。我已将数据库中的图像存储为url,并尝试使用Picasso library在应用中获取图像。但我无法检索图像表单数据库。以下是我的代码。

我用来获取数据的片段类:

public class McaFirstSemSylabus extends Fragment {

    public ImageView mcafirstsemsylbausimag;

    Syllabus sl;
    DatabaseReference loadmcafirstsylabus;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View rootView = inflater.inflate(R.layout.activity_mca_first_sem_sylabus, container, false);
        loadmcafirstsylabus = FirebaseDatabase.getInstance().getReference().child("Syllabus").child("McaSyllabus").child("Firstsem");

        mcafirstsemsylbausimag = (ImageView) rootView.findViewById(R.id.mcasylabus_img);

         String img = sl.getImg();

        Picasso.with(getActivity().getApplicationContext()).load(img).into(mcafirstsemsylbausimag);
        return rootView;
    }
}

下面是POJO类,它由getter和setter组成:

public class Syllabus {

    private String img;

    public String getImg() {
        return img;
    }

    public void setImg(String img) {
        this.img = img;
    }

    public Syllabus(){
    }

    public Syllabus(String image) {
        this.img = image;
    }
}

1 个答案:

答案 0 :(得分:1)

那是因为你的教学大纲对象是空的! 您必须将ValueEventListener赋予您存储在该特定子项中的对象

 loadmcafirstsylabus.addListenerForSingleValueEvent(new ValueEventListener() {
                @Override 
                public void onDataChange(DataSnapshot dataSnapshot) {
                //this retrives the java object you saved in that particular child
                sl = dataSnapshot.getValue(Syllabus.class);
                String img = sl.getImg();

                //rest of your code
                }