Я пытаюсь отобразить содержимое моей таблицы / списка Firebase под названием «Активы» в представлении переработчика. Но я получаю сообщение об ошибке:
com.google.firebase.database.DatabaseException: Невозможно преобразовать объект типа java .lang.String в тип com.example.zakatone. Активы
Я попытался просмотреть все связанные классы, но не могу найти ошибку.
Вот так выглядят мои данные в Firebase:
Активы. java
package com.example.zakatone;
public class Assets {
private String assetname;
private String assetamount;
public Assets() {
}
public String getAssetname() {
return assetname;
}
public void setAssetname(String assetname) {
this.assetname = assetname;
}
public String getAssetamount() {
return assetamount;
}
public void setAssetamount(String assetamount) {
this.assetamount = assetamount;
}
}
MyAdapter. java
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> {
private Context context;
private ArrayList<Assets> assets;
MyAdapter(Context c, ArrayList<Assets> a)
{
context = c;
assets = a;
}
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return new MyViewHolder(LayoutInflater.from(context).inflate(R.layout.cardview,parent, false));
}
@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
holder.name.setText(assets.get(position).getAssetname());
holder.amount.setText(assets.get(position).getAssetamount());
}
@Override
public int getItemCount() {
return assets.size();
}
class MyViewHolder extends RecyclerView.ViewHolder{
TextView name, amount;
public MyViewHolder(@NonNull View itemView) {
super(itemView);
name = itemView.findViewById(R.id.name);
amount = itemView.findViewById(R.id.amount);
}
}
}
Здесь я пытаюсь отобразить свои данные: обзор. java
reference = FirebaseDatabase.getInstance().getReference().child("Assets");
recyclerView = findViewById(R.id.myRecycler);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
reference = FirebaseDatabase.getInstance().getReference().child("Assets");
reference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
list = new ArrayList<Assets>();
for(DataSnapshot dataSnapshot1: dataSnapshot.getChildren()){
Assets a = dataSnapshot1.getValue(Assets.class);
list.add(a);
}
adapter = new MyAdapter(overview.this,list);
recyclerView.setAdapter(adapter);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Toast.makeText(overview.this, "Something Fishy", Toast.LENGTH_SHORT).show();
}
});
Я хочу отобразить данные следующим образом:
Я получаю ошибку в обзоре. java класс в строке:
Assets a = dataSnapshot1.getValue(Assets.class);
Пожалуйста, помогите мне, поскольку на странице обзора ничего не отображается на странице момент Я предполагаю, что при доступе к таблице базы данных произошла ошибка, но я не уверен.