簡體   English   中英

將 Firebase 數據庫中的數據顯示到 RecyclerView 時出錯

[英]Error while displaying data from Firebase Database to RecyclerView

當我們的應用程序嘗試顯示來自我們的 Firebase 數據庫的數據時,我們一直面臨這個錯誤。 這是logcat中顯示的錯誤:

com.google.firebase.database.DatabaseException: Can't convert object of type java.lang.String to type com.example.projectrefill.retailer_model_datewise_dispwhenpressed

這是我們試圖從中顯示數據的數據庫的屏幕截圖
零售商> Kamath Bakery> r_history > (date_with_time) > (number)>:

Firebase 實時數據庫

Java Class(retailerside_datewisetransaction_Fragment):

FirebaseRecyclerOptions<retailer_model_datewise_dispwhenpressed> options =
                new FirebaseRecyclerOptions.Builder<retailer_model_datewise_dispwhenpressed>()
                        .setQuery(FirebaseDatabase.getInstance().getReference().child("Retailer").child(username).child("r_history").child(datenew),retailer_model_datewise_dispwhenpressed.class)
                        .build();



        adapter=new adapter_retailerside_datewise_dispoforder(options);
        adapter.startListening();

        recyclerView.setAdapter(adapter);

Model Class(retailer_model_datewise_dispwhenpressed):

public class retailer_model_datewise_dispwhenpressed {
    String name,price,quan,totalamount,weight;

    public retailer_model_datewise_dispwhenpressed() {
    }

    public retailer_model_datewise_dispwhenpressed(String name, String price, String quan, String totalamount, String weight) {

        this.name = name;
        this.price = price;
        this.quan = quan;
        this.totalamount = totalamount;
        this.weight = weight;
    }


    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPrice() {
        return price;
    }

    public void setPrice(String price) {
        this.price = price;
    }

    public String getQuan() {
        return quan;
    }

    public void setQuan(String quan) {
        this.quan = quan;
    }

    public String getTotalamount() {
        return totalamount;
    }

    public void setTotalamount(String totalamount) {
        this.totalamount = totalamount;
    }

    public String getWeight() {
        return weight;
    }

    public void setWeight(String weight) {
        this.weight = weight;
    }
}

適配器 Class (adapter_retailerside_datewise_dispoforder):

public class adapter_retailerside_datewise_dispoforder extends FirebaseRecyclerAdapter<retailer_model_datewise_dispwhenpressed,adapter_retailerside_datewise_dispoforder.myviewholder> {

    public adapter_retailerside_datewise_dispoforder(@NonNull FirebaseRecyclerOptions<retailer_model_datewise_dispwhenpressed> options) {
        super(options);
    }

    @Override
    protected void onBindViewHolder(@NonNull myviewholder holder, int position, @NonNull retailer_model_datewise_dispwhenpressed model) {

      holder.name.setText("Name: "+model.getName());
      holder.price.setText("Price: "+model.getPrice());
      holder.quan.setText("Quan: "+model.getQuan());
      holder.totprice.setText(model.getTotalamount());
      holder.weight.setText("Weight: "+model.getWeight());


    }

    @NonNull
    @Override
    public myviewholder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {

        View view= LayoutInflater.from(parent.getContext()).inflate(R.layout.single_row_retailer_datewise_whenpressed,parent,false);
        return new myviewholder(view);
    }

    public class myviewholder extends RecyclerView.ViewHolder {
        TextView name,price,quan,weight,totprice;

        public myviewholder(@NonNull View itemView) {
            super(itemView);

            name=itemView.findViewById(R.id.datewisename);
            price=itemView.findViewById(R.id.datewiseprice);
            quan=itemView.findViewById(R.id.datewisequan);
            weight=itemView.findViewById(R.id.datewiseweight);
            totprice=itemView.findViewById(R.id.totalpricehere);
        }
    }
}

由於您將此路徑傳遞給 FirebaseUI 適配器:

FirebaseDatabase.getInstance().getReference().child("Retailer").child(username).child("r_history").child(datenew)

Firebase 將讀取該路徑下的每個子節點並嘗試從中創建一個retailer_model_datewise_dispwhenpressed object。

這適用於孩子1 ,因為它具有您的 class 具有的屬性。 但是隨后 Firebase 嘗試對Pmode執行相同的操作,只是一個字符串值,當按下 object 時,它不是有效的retailer_model_datewise_dispwhenpressed

您必須確保在加載的路徑下只有有效的retailer_model_datewise_dispwhenpressed對象的子節點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM