[英]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)>:
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.