"item03" : {
"description" : "...... ",
"image_url" : "....",
"name" : ".....",
"price" : "250.00"
}
item = FirebaseDatabase.getInstance().getReference("Category")
.child(categoryID).child("Items");
private void fetchData() {
FirebaseRecyclerOptions<ItemModel> options = new FirebaseRecyclerOptions.Builder<ItemModel>()
.setQuery(item, new SnapshotParser<ItemModel>() {
@NonNull
@Override
public ItemModel parseSnapshot(@NonNull DataSnapshot snapshot) {
return new ItemModel(snapshot.child("name").getValue().toString(),
snapshot.child("description").getValue().toString(),
snapshot.child("image_url").getValue().toString(),
snapshot.child("price").getValue().toString());
}
}).build();
// Set the adapter
itemsAdapter = new ItemsRecyclerViewAdapter(options);
}
Я не могу получить доступ к имени, URL-адресу изображения и другим свойствам, потому что snapshot.getvalue возвращает true Как я могу получить значения из firebase, имеющие отношение «один ко многим»?
Вы пытаетесь прочитать name
, description
и другие свойства узла "item01": true
. Это не сработает, так как свойства не существуют на этом узле.
Вместо этого вам нужно будет загрузить снимок для этого конкретного элемента, а затем прочитать его свойства. Это довольно нетривиально, поэтому я настоятельно рекомендую использовать метод setIndexedQuery, специально созданный для этого случая.