RecyclerView с несколькими дочерними узлами firebase узла - PullRequest
0 голосов
/ 18 октября 2019

Я остановлен из-за ошибки recyclerView. "не могу преобразовать объект String в объект Продукты Мое желание состоит в том, чтобы зацикливаться на ограниченных элементах, но есть заголовок строки и изображение, архитектура моей базы данных Firebase Найдите мой код ниже.

        NewsRef = FirebaseDatabase.getInstance().getReference().child("Products").child("Limited").child("Saint Valentin");

FirebaseRecyclerOptions<Product> options = new FirebaseRecyclerOptions.Builder<Product>()
                    .setQuery( NewsRef, Product.class )
                    .build();

            FirebaseRecyclerAdapter<Product, ProductViewHolder> adapter = new FirebaseRecyclerAdapter<Product, ProductViewHolder>(options) {

                @Override
                protected void onBindViewHolder(@NonNull final ProductViewHolder holder, int position, @NonNull final Product model) {
                    holder.title.setText( model.getTitle() );
                    Picasso.get().load( model.getImage() ).into( holder.image );
                }

Конечно, под этим кодом есть функция onCreateViewHolder.

public class Products {

private String title, image, category, date, number;

public Products() {
}

public Products(String title, String image, String category, String date, String number) {
    this.title = title;
    this.image = image;
    this.category = category;
    this.date = date;
    this.number = number;
}

public String getTitle() {
    return title;
}

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

public String getImage() {
    return image;
}

public void setImage(String image) {
    this.image = image;
}

public String getCategory() {
    return category;
}

public void setCategory(String category) {
    this.category = category;
}

public String getDate() {
    return date;
}

public void setDate(String date) {
    this.date = date;
}

public String getNumber() {
    return number;
}

public void setLimitedNumber(String number) {
    this.number = number;
}

Пожалуйста, у кого-нибудь есть решение?

1 Ответ

0 голосов
/ 18 октября 2019

Вы пытаетесь получить API-интерфейсы неверным образом

Измените данные, показанные на рисунке ниже, для получения дочерних данных (изображение неправильно добавлено только для справки) enter image description here

Json выглядит примерно так:

{
"Limited": {
"Saint Valentin": [
  {
    "name": "Saint Valentin 2012",
    "image": "https://firebasestorage.googleapis.com..",
    "title": "Saint Valentin 2012"
  },
  {
    "name": "Saint Valentin 2015",
    "image": "https://firebasestorage.googleapis.com...",
    "title": "Saint Valentin 2015"
  },
  {
    "name": "Saint Valentin 2017",
    "image": "https://firebasestorage.googleapis.com...",
    "title": "Saint Valentin 2017"
  }
  ]
  }
  }
...