如何使用我的模型类从Firebase数据库中检索列表

huangapple 未分类评论66阅读模式
英文:

How to retreive lists from firebase database with my model class

问题

这是我想要检索的 Firebase 数据库节点

大家好,
我正在尝试从 Firebase 检索数组列表,并希望通过我的模型类获取它们。然而,我通过同一模型类存储了数据,但无法检索。这是我的模型类:

public class PickupRequestsInfo implements Serializable {
    Double lat, lng;
    ArrayList<Double> listDestLat, listDestLng;
    ArrayList<String> listDestination, listReceiverName, listReceiverMob, listParcelWeight, 
    listParcelSze;

    public PickupRequestsInfo() {
    }

    public PickupRequestsInfo(Double lat, Double lng, ArrayList<Double> listDestLat, ArrayList<Double> 
    listDestLng,
                              ArrayList<String> listDestination, ArrayList<String> listReceiverName,
                              ArrayList<String> listReceiverMob, ArrayList<String> listParcelWeight,
                              ArrayList<String> listParcelSze) {
        this.lat = lat;
        this.lng = lng;
        this.listDestLat = listDestLat;
        this.listDestLng = listDestLng;
        this.listDestination = listDestination;
        this.listReceiverName = listReceiverName;
        this.listReceiverMob = listReceiverMob;
        this.listParcelWeight = listParcelWeight;
        this.listParcelSze = listParcelSze;
    }

    public Double getLat() {
        return lat;
    }

    public void setLat(Double lat) {
        this.lat = lat;
    }

    public Double getLng() {
        return lng;
    }

    public void setLng(Double lng) {
        this.lng = lng;
    }

    public ArrayList<Double> getListDestLat() {
        return listDestLat;
    }

    public void setListDestLat(ArrayList<Double> listDestLat) {
        this.listDestLat = listDestLat;
    }

    public ArrayList<Double> getListDestLng() {
        return listDestLng;
    }

    public void setListDestLng(ArrayList<Double> listDestLng) {
        this.listDestLng = listDestLng;
    }

    public ArrayList<String> getListDestination() {
        return listDestination;
    }

    public void setListDestination(ArrayList<String> listDestination) {
        this.listDestination = listDestination;
    }

    public ArrayList<String> getListReceiverName() {
        return listReceiverName;
    }

    public void setListReceiverName(ArrayList<String> listReceiverName) {
        this.listReceiverName = listReceiverName;
    }

    public ArrayList<String> getListReceiverMob() {
        return listReceiverMob;
    }

    public void setListReceiverMob(ArrayList<String> listReceiverMob) {
        this.listReceiverMob = listReceiverMob;
    }

    public ArrayList<String> getListParcelWeight() {
        return listParcelWeight;
    }

    public void setListParcelWeight(ArrayList<String> listParcelWeight) {
        this.listParcelWeight = listParcelWeight;
    }

    public ArrayList<String> getListParcelSze() {
        return listParcelSze;
    }

    public void setListParcelSze(ArrayList<String> listParcelSze) {
        this.listParcelSze = listParcelSze;
    }
}

这是我用来检索的代码:

pRef = FirebaseDatabase.getInstance().getReference("PickupRequests");
pRef.child(senderId).addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
        if(dataSnapshot.hasChildren()){
            info = dataSnapshot.getValue(PickupRequestsInfo.class);
        }
    }
    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {

    }
});

但是,无论我尝试从我的模型类中获取任何项,例如 info.getLat().get(0),它都会返回 null 并抛出一个空指针异常。请指导我如何从我的数据库获取列表。提前谢谢。

英文:

Here is my Firebase Database Node which i want to retreive

Hello Everyone,
I am trying to retreive arraylist from firebase and want to get them through my model class. However i stored the data through same model class but can't retreive. Here is my model class

public class PickupRequestsInfo implements Serializable {
    Double lat , lng;
    ArrayList&lt;Double&gt; listDestLat , listDestLng;
    ArrayList&lt;String&gt; listDestination , listReceiverName , listReceiverMob , listParcelWeight , 
    listParcelSze;

    public PickupRequestsInfo() {
    }

    public PickupRequestsInfo(Double lat, Double lng, ArrayList&lt;Double&gt; listDestLat, ArrayList&lt;Double&gt; 
    listDestLng,
                              ArrayList&lt;String&gt; listDestination, ArrayList&lt;String&gt; listReceiverName,
                              ArrayList&lt;String&gt; listReceiverMob, ArrayList&lt;String&gt; listParcelWeight,
                              ArrayList&lt;String&gt; listParcelSze) {
        this.lat = lat;
        this.lng = lng;
        this.listDestLat = listDestLat;
        this.listDestLng = listDestLng;
        this.listDestination = listDestination;
        this.listReceiverName = listReceiverName;
        this.listReceiverMob = listReceiverMob;
        this.listParcelWeight = listParcelWeight;
        this.listParcelSze = listParcelSze;
    }

    public Double getLat() {
        return lat;
    }

    public void setLat(Double lat) {
        this.lat = lat;
    }

    public Double getLng() {
        return lng;
    }

    public void setLng(Double lng) {
        this.lng = lng;
    }

    public ArrayList&lt;Double&gt; getListDestLat() {
        return listDestLat;
    }

    public void setListDestLat(ArrayList&lt;Double&gt; listDestLat) {
        this.listDestLat = listDestLat;
    }

    public ArrayList&lt;Double&gt; getListDestLng() {
        return listDestLng;
    }

    public void setListDestLng(ArrayList&lt;Double&gt; listDestLng) {
        this.listDestLng = listDestLng;
    }

    public ArrayList&lt;String&gt; getListDestination() {
        return listDestination;
    }

    public void setListDestination(ArrayList&lt;String&gt; listDestination) {
        this.listDestination = listDestination;
    }

    public ArrayList&lt;String&gt; getListReceiverName() {
        return listReceiverName;
    }

    public void setListReceiverName(ArrayList&lt;String&gt; listReceiverName) {
        this.listReceiverName = listReceiverName;
    }

    public ArrayList&lt;String&gt; getListReceiverMob() {
        return listReceiverMob;
    }

    public void setListReceiverMob(ArrayList&lt;String&gt; listReceiverMob) {
        this.listReceiverMob = listReceiverMob;
    }

    public ArrayList&lt;String&gt; getListParcelWeight() {
        return listParcelWeight;
    }

    public void setListParcelWeight(ArrayList&lt;String&gt; listParcelWeight) {
        this.listParcelWeight = listParcelWeight;
    }

    public ArrayList&lt;String&gt; getListParcelSze() {
        return listParcelSze;
    }

    public void setListParcelSze(ArrayList&lt;String&gt; listParcelSze) {
        this.listParcelSze = listParcelSze;
    }
}

Here is the code which i used to retrieve

       pRef = FirebaseDatabase.getInstance().getReference(&quot;PickupRequests&quot;);
        pRef.child(senderId).addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                if(dataSnapshot.hasChildren()){
                    info = dataSnapshot.getValue(PickupRequestsInfo.class);
                }
            }
            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {

            }
        });

But it whenever i tried to get any item from my Model class e.g. info.getLat().get(0)
it gives me null and throws a NULLPointerException. Please Guide me how can i get the lists from my database. Thanks in advance

huangapple
  • 本文由 发表于 2020年4月9日 00:43:24
  • 转载请务必保留本文链接:https://java.coder-hub.com/61105700.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定