Я хочу сделать клон Play Store, загрузка данных из Firebase не
работает правильно ... Вы можете понять из скриншота, в основном, в каждой категории есть ВСЕ приложения
Красный - AppModel
Зеленый - ParentModel (категории)
Синий - Все приложения
![App Screenshot](https://i.stack.imgur.com/piJ3b.png)
База данных:
![DB Schema](https://i.stack.imgur.com/JLUGE.jpg)
Я добавил только ту часть, которая важна, если вам нужно больше, но я не думаю, что это так, попросите об этом. Большое спасибо!
ParentModel - это объект, который принимает строку в качестве имени категории и списка массивов AppModel
mDatabaseRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshotBig) {
for (final String s : mCategoryStrings) { //for every string is the categories array
final ParentModel parentModel = new ParentModel();
apps = new ArrayList<>();
DatabaseReference smallRef = mDatabaseRef.child(s); //HERE: Geting the category db reference for each s
smallRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {
AppModel appModel = postSnapshot.getValue(AppModel.class); //getting it
apps.add(appModel);
parentModel.setTitle(s);
parentModel.setArrayList(apps);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Toast.makeText(getContext(), databaseError.getMessage(), Toast.LENGTH_SHORT).show();
}
});
parentModel.setArrayList(apps); //setting the array
mParents.add(parentModel); //adding it to the parents array list
}//END OF String s FOR
mAdapter = new ParentAdapter(getContext(), mParents);
mRecyclerView.setAdapter(mAdapter);
}//END OF BIG ON DATA CHANGE
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Toast.makeText(getContext(), databaseError.getMessage(), Toast.LENGTH_SHORT).show();
}
});