【问题标题】:I want to get order details from firebase database to firebase recyclerview adapter我想从 firebase 数据库获取订单详细信息到 firebase recyclerview 适配器
【发布时间】:2018-06-20 10:09:51
【问题描述】:

我想从 firebase 获取所有数据,并且还想将这些数据存储到 firebase recyclerview。该代码仅显示进入回收站视图的最后一个条目。但是当我从firebase中删除最后一个数据时,它会显示倒数第二个数据。或如何将子字段添加到 firebase recyclerview。

    mDatabase.addValueEventListener(new ValueEventListener() {
        @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR1)
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {

            for (DataSnapshot datas : dataSnapshot.getChildren()) {

                keys = datas.getKey();

                date = datas.child("date").getValue().toString();
                IsCompleted = datas.child("isCompleted").getValue().toString();
                MobileNoFB = datas.child("mobileNo").getValue().toString();
                //Toast.makeText(YourOrdered.this, "Date is :- " + date + " IsCompleted:- " + IsCompleted, Toast.LENGTH_LONG).show();


                if (MobileNoFB.matches(MobileNumber)) {
                    moDatabase = FirebaseDatabase.getInstance().getReference().child("Pending_Orders").child(keys).child("Orders");

                    // Recyclerview data

                    final FirebaseRecyclerAdapter<YourOrderAdapter, YourOrderViewHolder> YORecyclerView = new FirebaseRecyclerAdapter<YourOrderAdapter, YourOrderViewHolder>
                            (YourOrderAdapter.class, R.layout.client_order, YourOrderViewHolder.class, moDatabase) {

                        @Override
                        protected void populateViewHolder(final YourOrderViewHolder viewHolder, final YourOrderAdapter model, final int position) {

                            viewHolder.setProImage(getApplicationContext(), model.getProductImage());
                            viewHolder.setProductQuantity(model.getProductQuantity());
                            viewHolder.setDate(date);
                            viewHolder.setIsCompleted(IsCompleted);
                            viewHolder.setProductColor(model.getProductColor());
                            viewHolder.setProductNo(model.getProductNo());
                        }
                    };
                    YORecyclerView.notifyDataSetChanged();

                    mBlogList.setAdapter(YORecyclerView);
                } else {
                    Toast.makeText(YourOrdered.this, "Ordered does not found...", Toast.LENGTH_LONG).show();
                }

                //Toast.makeText(YourOrdered.this, "I is:- " + i, Toast.LENGTH_LONG).show();
            }

            //Toast.makeText(YourOrdered.this, "Date is :- " + date + " IsCompleted:- " + IsCompleted,Toast.LENGTH_LONG).show();
        }


        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

【问题讨论】:

    标签: java android firebase firebase-realtime-database


    【解决方案1】:

    请删除

    `mBlogList.setAdapter(YORecyclerView);` 
    

    来自for循环并在for循环之后添加它

       `mBlogList.setAdapter(YORecyclerView);`
    

    【讨论】:

    • 我刚刚做了,但没有工作。它只显示最后的记录
    • 在for循环中,你需要将所有的记录都记录在列表中,并将这个列表传递给你的适配器
    • 当前显示的是最后一条记录还是第一条记录?
    • 当前显示的是最后一条记录
    • 那么您需要在列表中添加所有记录并删除从 for 循环中创建的适配器
    猜你喜欢
    • 2022-01-17
    • 2018-03-16
    • 1970-01-01
    • 2020-11-26
    • 2020-06-01
    • 2021-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多