Продукты находятся в базе данных, но не отображаются во фрагменте в моем приложении android - PullRequest
1 голос
/ 14 апреля 2020

Я пытаюсь выучить android, и у меня есть этот список покупок, используя базу данных Cloud Firestore. Когда я хочу добавить продукты в базу данных, это работает (я вижу их в Firebase), но когда я хочу отобразить их, они не отображаются ... какие-то идеи, почему? Спасибо!

Это часть функции onCreateView() в ShoppingListFragment:

    rootRef = FirebaseFirestore.getInstance();
    shoppingListProductsRef = rootRef.collection("products").document(shoppingListId).collection("shoppingListProducts");

    RecyclerView recyclerView = shoppingListViewFragment.findViewById(R.id.recycler_view);
    recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
    TextView emptyView = shoppingListViewFragment.findViewById(R.id.empty_view);
    ProgressBar progressBar = shoppingListViewFragment.findViewById(R.id.progress_bar);

    Query query = shoppingListProductsRef.whereEqualTo("izInShoppingList", izInShoppingList)
            .orderBy("productName", Query.Direction.ASCENDING);

    FirestoreRecyclerOptions<ProductModel> firestoreRecyclerOptions = new FirestoreRecyclerOptions.Builder<ProductModel>()
            .setQuery(query, ProductModel.class)
            .build();

    firestoreRecyclerAdapter =
            new FirestoreRecyclerAdapter<ProductModel, ProductViewHolder>(firestoreRecyclerOptions) {
                @Override
                protected void onBindViewHolder(@NonNull ProductViewHolder holder, int position, @NonNull ProductModel model) {
                    holder.setProduct(getContext(), shoppingListViewFragment, userEmail, userName, shoppingListModel, model);
                }

                @Override
                public ProductViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
                    View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_product, parent, false);
                    return new ProductViewHolder(view);
                }

                @Override
                public void onDataChanged() {
                    if (progressBar != null) {
                        progressBar.setVisibility(View.GONE);
                    }

                    if (getItemCount() == 0) {
                        recyclerView.setVisibility(View.GONE);
                        emptyView.setVisibility(View.VISIBLE);
                    } else {
                        recyclerView.setVisibility(View.VISIBLE);
                        emptyView.setVisibility(View.GONE);
                    }
                }

                @Override
                public int getItemCount() {
                    return super.getItemCount();
                }
            };
    recyclerView.setAdapter(firestoreRecyclerAdapter);

    return shoppingListViewFragment;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...