Могу ли я добавить addValueEventListener внутри onBindViewHolder при использовании FirebaseRecyclerAdapter? - PullRequest
0 голосов
/ 15 апреля 2020

Я новичок с Android разработкой. Я запустил приложение, но застрял со следующим:

Я хотел бы показать элементы корзины и для каждого элемента я хотел бы получить информацию из дерева продуктов. В коде prod всегда имеет значение null.

private void ShowCartItems()
{
    final DatabaseReference cartListRef = FirebaseDatabase.getInstance().getReference().child("Cart List");
    FirebaseRecyclerOptions<Cart> options =
            new FirebaseRecyclerOptions.Builder<Cart>()
                    .setQuery(cartListRef.child("User View")
                            .child(Prevalent.currentOnlineUser.getPhone())
                            .child("Products"), Cart.class)
                    .build();

    FirebaseRecyclerAdapter<Cart, CartViewHolder> adapter
            = new FirebaseRecyclerAdapter<Cart, CartViewHolder>(options) {
        @Override
        protected void onBindViewHolder(@NonNull CartViewHolder holder, int i, @NonNull final Cart model)
        {

            DatabaseReference productsRef = FirebaseDatabase.getInstance().getReference().child("Products").child(model.getPid());
            productsRef.addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                    Log.d("TAG", "onDataChange: ");
                    prod = dataSnapshot.getValue(Products.class);
                }

                @Override
                public void onCancelled(@NonNull DatabaseError databaseError) {

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