Android Recyclerview不显示来自Firebase的数据

Android Recyclerview不显示来自Firebase的数据,android,firebase-realtime-database,android-recyclerview,firebaseui,Android,Firebase Realtime Database,Android Recyclerview,Firebaseui,我一直在我的应用程序上看到一个空白屏幕,但没有错误,我的Firebase包含数据。看起来它的检索不正确。我已经检查了其他类似问题的答案,尝试了解决方案,但仍然找不到解决问题的方法。请帮忙,我对这个有点陌生 这是我的OrderStatus类 public class OrderStatus extends AppCompatActivity { public RecyclerView recyclerView; public RecyclerView.LayoutManager l

我一直在我的应用程序上看到一个空白屏幕,但没有错误,我的Firebase包含数据。看起来它的检索不正确。我已经检查了其他类似问题的答案,尝试了解决方案,但仍然找不到解决问题的方法。请帮忙,我对这个有点陌生

这是我的OrderStatus类

public class OrderStatus extends AppCompatActivity {
    public RecyclerView recyclerView;
    public RecyclerView.LayoutManager layoutManager;

    FirebaseDatabase database;
    DatabaseReference requests;
    FirebaseRecyclerAdapter<DeliveryRequest, OrderViewHolder> adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_order_status);

        database = FirebaseDatabase.getInstance();
        requests = database.getReference("OrderRequests");

        recyclerView = (RecyclerView)findViewById(R.id.listOrders);


        //ADAPTER
        loadOrders();
    }

    private void loadOrders() {
        FirebaseRecyclerOptions<DeliveryRequest> options =
                new FirebaseRecyclerOptions.Builder<DeliveryRequest>()
                        .setQuery(requests, new SnapshotParser<DeliveryRequest>() {
                            @NonNull
                            @Override
                            public DeliveryRequest parseSnapshot(@NonNull DataSnapshot snapshot) {
                                return null;
                            }
                        })
                        .build();


          adapter = new FirebaseRecyclerAdapter<DeliveryRequest, OrderViewHolder>(options) {
            @Override
            public OrderViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
                // Create a new instance of the ViewHolder, in this case we are using a custom
                // layout called R.layout.message for each item
                View view = LayoutInflater.from(parent.getContext())
                        .inflate(R.layout.order_layout, parent, false);

                return new OrderViewHolder(view);
            }

            @Override
            protected void onBindViewHolder(OrderViewHolder holder, int position, DeliveryRequest model) {
                // Bind the Chat object to the ChatHolder
                // ...

                holder.txtOrderPhone.setText(model.getPhone());
                holder.txtOrderAddress.setText(model.getAddress());
                holder.txtOrderStatus.setText(convertCodeToStatus(model.getStatus()));
                holder.txtOrderId.setText(adapter.getRef(position).getKey());
            }
        };
        layoutManager = new LinearLayoutManager(this);
        recyclerView.setLayoutManager(layoutManager);
        recyclerView.setAdapter(adapter);
        adapter.startListening();
    }

    private String convertCodeToStatus(String status){
        if (status.equals("0"))
            return "placed";

        else if (status.equals("1"))
            return "on my way";
        else
            return "Shipped";
    }
}
公共类OrderStatus扩展了AppCompatActivity{
公共回收视图回收视图;
public RecyclerView.LayoutManager LayoutManager;
Firebase数据库;
数据库参考请求;
FirebaseRecyclerAdapter适配器;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u order\u status);
database=FirebaseDatabase.getInstance();
requests=database.getReference(“OrderRequests”);
recyclerView=(recyclerView)findViewById(R.id.listOrders);
//适配器
loadOrders();
}
私人作废订单(){
FirebaseRecyclerOptions选项=
新的FirebaseRecyclerOptions.Builder()
.setQuery(请求,新快照解析器(){
@非空
@凌驾
public DeliveryRequest parseSnapshot(@NonNull DataSnapshot snapshot){
返回null;
}
})
.build();
适配器=新的FirebaseRecyclerAdapter(选项){
@凌驾
public OrderViewHolder onCreateViewHolder(视图组父级,int-viewType){
//创建ViewHolder的新实例,在本例中,我们使用自定义
//为每个项目调用R.layout.message的布局
View=LayoutInflater.from(parent.getContext())
.充气(R.layout.order_layout,父级,false);
返回新的OrderViewHolder(视图);
}
@凌驾
受保护的无效onBindViewHolder(OrderViewHolder、int位置、DeliveryRequest模型){
//将聊天对象绑定到ChatHolder
// ...
holder.txtordphone.setText(model.getPhone());
holder.txtOrderAddress.setText(model.getAddress());
holder.txtOrderStatus.setText(convertCodeToStatus(model.getStatus());
holder.txtOrderId.setText(adapter.getRef(position.getKey());
}
};
layoutManager=新的LinearLayoutManager(此);
recyclerView.setLayoutManager(layoutManager);
recyclerView.setAdapter(适配器);
adapter.startListening();
}
私有字符串convertCodeToStatus(字符串状态){
如果(状态等于(“0”))
返回“放置”;
else if(状态等于(“1”))
返回“在我的路上”;
其他的
返回“已装运”;
}
}
我的弦乐课

public class DeliveryRequest   {
    public String   firstName, lastName,address, phone,total, status;
    public List<ProposalDetails> proposalDetails;

    public DeliveryRequest() {
    }

    public DeliveryRequest(String firstName,String lastName, String address,String phone,String total,String status, List<ProposalDetails> proposalDetails){
        this.firstName = firstName;
        this.lastName = lastName;
        this.address = address;
        this.phone = phone;
        this.proposalDetails = proposalDetails;
        this.status = "0";
        this.total= total;

    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public List<ProposalDetails> getProposalDetails() {
        return proposalDetails;
    }

    public void setProposalDetails(List<ProposalDetails> proposalDetails) {
        this.proposalDetails = proposalDetails;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getTotal() {
        return total;
    }

    public void setTotal(String total) {
        this.total = total;
    }

    public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }
    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }
}
公共类交付请求{
公共字符串firstName、lastName、地址、电话、总数、状态;
公共清单提案详情;
公共交付请求(){
}
public DeliveryRequest(字符串名、字符串名、字符串地址、字符串电话、字符串总数、字符串状态、列表建议详细信息){
this.firstName=firstName;
this.lastName=lastName;
this.address=地址;
this.phone=电话;
this.proposalDetails=proposalDetails;
此状态为“0”;
这个.总计=总计;
}
公共字符串getPhone(){
回电话;
}
公用无效设置电话(字符串电话){
this.phone=电话;
}
公共列表getProposalDetails(){
返回建议详情;
}
公共无效集合建议细节(建议细节列表){
this.proposalDetails=proposalDetails;
}
公共字符串getStatus(){
返回状态;
}
公共无效设置状态(字符串状态){
这个状态=状态;
}
公共字符串getTotal(){
返回总数;
}
公共void集合总计(字符串总计){
这个.总计=总计;
}
公共字符串getFirstName(){
返回名字;
}
public void setFirstName(字符串firstName){
this.firstName=firstName;
}
公共字符串getLastName(){
返回姓氏;
}
public void setLastName(字符串lastName){
this.lastName=lastName;
}
公共字符串getAddress(){
回信地址;
}
公共无效设置地址(字符串地址){
this.address=地址;
}
}

您是通过
返回null
实现的
parseSnapshot
,这意味着来自数据库的任何
DataSnapshot
都会变成
null

您可能正在寻找以下内容:

public DeliveryRequest parseSnapshot(@NonNull DataSnapshot snapshot) {
    return snapshot.getValue(DeliveryRequest.class);
}