Исключение из базы данных FirebaseRecyclerAdapter - PullRequest
1 голос
/ 18 июня 2019

Я создал класс модели и макет для отдельного элемента, а затем создал держатель представления и firebaseRecyclerAdapter, как показано в приведенном ниже коде, и при запуске он выдает мне эту ошибку

        com.google.firebase.database.DatabaseException: Can't 
        convert object of type java.lang.String to type 
        com.best.karem.letsplay.Model.PsModel

Я попытался добавить onValueEventListener, но этотоже не работает

Класс модели

      public class PsModel {

private String title;
private String location;
private String thumb_image;


public PsModel(String title, String location, String thumb_image) {
    this.title = title;
    this.location = location;
    this.thumb_image = thumb_image;
}

public String getTitle() {
    return title;
}

public void setTitle(String title) {
    this.title = title;
}

public String getLocation() {
    return location;
}

public void setLocation(String location) {
    this.location = location;
}

public String getThumb_image() {
    return thumb_image;
}

public void setThumb_image(String thumb_image) {
    this.thumb_image = thumb_image;
}

public PsModel(){

}


}

Основной класс

       public class Ps extends AppCompatActivity {

private Toolbar toolbar;
private FloatingActionButton psBtn;

private RecyclerView recyclerView;
private FirebaseAuth auth;
private DatabaseReference psRef;
private String currentUser;

private FirebaseRecyclerAdapter<PsModel , PsViewHolder> adapter;



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

    auth = FirebaseAuth.getInstance();
    currentUser = auth.getCurrentUser().getUid();
    psRef = FirebaseDatabase.getInstance().getReference().child("Posts").child(currentUser).child("Ps");


    recyclerView = findViewById(R.id.ps_recyclerview);
    recyclerView.setHasFixedSize(true);
    recyclerView.setLayoutManager(new LinearLayoutManager(this));


    adapter = new FirebaseRecyclerAdapter<PsModel, PsViewHolder>(
            PsModel.class,
            R.layout.list_item,
            PsViewHolder.class,
            psRef
    ) {
        @Override
        protected void populateViewHolder(PsViewHolder viewHolder, PsModel model, int position) {


            viewHolder.itemTitle.setText(model.getTitle());
            viewHolder.itemLocation.setText(model.getLocation());
            Picasso.get().load(model.getThumb_image()).into(viewHolder.itemImage);

        }
    };

    recyclerView.setAdapter(adapter);

}


public static class PsViewHolder extends RecyclerView.ViewHolder{

    public ImageView itemImage;
    public TextView itemTitle , itemLocation;

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


        itemImage = itemView.findViewById(R.id.item_image);
        itemTitle = itemView.findViewById(R.id.item_title);
        itemLocation = itemView.findViewById(R.id.item_location);



    }
}

ИЗОБРАЖЕНИЕ СТРУКТУРЫ ДАННЫХ ФАЙБАЗА

и, пожалуйста, не посылайте мне другой ответ на этом сайте, потому что я искал его в течение 4 часов и попробовал все, но ничего не вышло

1 Ответ

1 голос
/ 18 июня 2019

Можете ли вы проверить содержимое psRef?

Я понимаю, что это String и ожидается как объект.

 psRef = FirebaseDatabase.getInstance().getReference().child("Posts").child(currentUser).child("Ps");
...