Инициализация ссылки на Firebase для RecyclerView при использовании интерфейса Firebase - PullRequest
0 голосов
/ 09 октября 2018

У меня есть структура firebase this

и ссылка на базу данных

mRef= FirebaseDatabase.getInstance().getReference().child("Uploads2").child(ProductEntered).child(StateEntered).child(CityEntered).child(TehsilEntered);

Вопрос

Я хочу загрузить все элементы данных в представление переработчика, но у меня нет ключа, например 09Oct... и будет несколько узлов как таковых, поэтому установите ссылку на, как показано выше, но когда я запускаю приложение, пустая карта утилизатора отображается с ключом как Дели, но ключ должен быть 09 октября .. Итак, как принять его на 09 октября ..

Мой Recycler View Code

 DatabaseReference mRef;
            mRef= FirebaseDatabase.getInstance().getReference().child("Uploads2").child(ProductEntered).child(StateEntered).child(CityEntered).child(TehsilEntered);
            Toast.makeText(getContext(),StateEntered+"\n"+CityEntered+"\n"+Tehsil.getText().toString(),Toast.LENGTH_LONG).show();
            FirebaseRecyclerOptions<RecyclerCropView> options=new FirebaseRecyclerOptions.Builder<RecyclerCropView>().setQuery(mRef,RecyclerCropView.class).build();

            FBRA=new FirebaseRecyclerAdapter<RecyclerCropView, ViewHolder>(options) {
                @Override
                protected void onBindViewHolder(@NonNull ViewHolder holder, int position, @NonNull RecyclerCropView model) {

                    holder.setProductImage(model.getProfileImage());
                    holder.setProductImage(model.getProduct_Image());
                    holder.setQuantity(model.getQuantity());
                    holder.setQuantityUnit(model.getQuantityUnit());
                    holder.setName(model.getName());
                    holder.setMax(model.getMaximumPrice());

                    final String x=FBRA.getRef(position).getKey().toString();
                    holder.setDate(x);
                    Toast.makeText(getActivity(),x.toString(),Toast.LENGTH_LONG).show();
                    holder.itemView.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View view) {
                            Intent intent=new Intent(getActivity(),Itemclicked.class);
                            intent.putExtra("ProductName",ProductEntered);
                            intent.putExtra("State",StateEntered);
                            intent.putExtra("City",CityEntered);
                            intent.putExtra("tehsil",Tehsil.getText().toString());
                            intent.putExtra("key",x);
                            startActivity(intent);
                        }
                    });
                }

                @NonNull
                @Override
                public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
                    View v=LayoutInflater.from(parent.getContext()).inflate(R.layout.recyclercard,parent,false);
                    return new ViewHolder(v);
                }


            };
            FBRA.notifyDataSetChanged();
            FBRA.startListening();
            LinearLayoutManager llm=new LinearLayoutManager(getActivity());
            llm.setOrientation(LinearLayoutManager.VERTICAL);
            rView.setLayoutManager(llm);
            rView.setHasFixedSize(true);
            rView.setAdapter(FBRA);
          }

здесь RecyclerCropView - класс модели. Viewholder - класс видоискателя. Myref - ссылка на базу данных. x = Дели, где я хочу, чтобы х до 09 октября ..

Ответы [ 2 ]

0 голосов
/ 09 октября 2018

попробуйте это, https://github.com/firebase/FirebaseUI-Android/blob/master/database/README.md

надеюсь, что это полная помощь

0 голосов
/ 09 октября 2018

Я не знаю, понимаю ли я ваш вопрос, но если вы хотите выполнить последовательное чтение всех узлов без определенного ключа, используйте foreach, как показано ниже:

    ValueEventListener statsListener = new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshit) {

            long mQtde, mQtdeAbast = 0;
            for (DataSnapshot snapPostos : dataSnapshit.getChildren()) {

                mQtde = 0;
                for (DataSnapshot snapUsers : snapPostos.getChildren()) {
                    mQtde = mQtde + (long) snapUsers.getValue();
                }
                mQtdeAbast = mQtdeAbast + mQtde;

            }

        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {
        }
    };
    mStatsDBRef.child("postos").addListenerForSingleValueEvent(statsListener);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...