Firebase UI RecyclerView - PullRequest
       11

Firebase UI RecyclerView

0 голосов
/ 18 марта 2019

Пожалуйста, помогите мне здесь, я застрял. У меня есть отлично работающее представление переработчика пользовательского интерфейса Firebase. Поэтому я перебираю базу данных перед загрузкой элементов.Я хочу перебрать все элементы (затем получить значения суммы mon + tuesday = start, затем wed + thur = end для каждого отдельного элемента, а затем заполнить представление только значениями, где start <= 90 && end <= 90). </p>

Это пример структуры моей базы данных

Структура базы данных.

Database Structure

Это то, что я пробовал, но оно не работает.Обратите внимание, что кнопка onclick и recyclerview работает. Единственная проблема заключается в добавлении этого условия.

Кажется, что всегда вызывается внутреннее условие else, если я его удаляю, выражение if всегда истинно независимо от логики.(если - еще) не работает.

   saturday.setOnClickListener(new View.OnClickListener() {

final DatabaseReference Distance = FirebaseDatabase.getInstance().getReference().child("Days");

    @Override
    public void onClick(View v) {

        //Loop through the database to get all results

        Distance.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {

                Iterator<DataSnapshot> items = dataSnapshot.getChildren().iterator();

                while (items.hasNext()) {
                    DataSnapshot item = items.next();

                    if (item.child("mon").exists() && item.child("tue").exists() && item.child("wed").exists() && item.child("thur").exists()) {

                        //Start
                        Double mon = Double.valueOf(item.child("mon").getValue().toString());
                        Double tue = Double.valueOf(item.child("tue").getValue().toString());
                        Double start = (mon + tue);

                        //End
                        Double wed = Double.valueOf(item.child("wed").getValue().toString());
                        Double thur = Double.valueOf(item.child("thur").getValue().toString());
                        Double end = (wed + thur);

                        //Check for the values that are less than 90 for both start and end.
                        if (start <= 90 && end <= 90) {

                            //Load them into the recyclerview
                            Query query = Distance;

                            FirebaseRecyclerAdapter<recyclerDriver, Users_ViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<recyclerDriver, Users_ViewHolder>(

                                    recyclerDriver.class,
                                    R.layout.recyclerdriverlayout,
                                    Users_ViewHolder.class,
                                    query

                            ) {
                                @Override
                                protected void populateViewHolder(Users_ViewHolder viewHolder, recyclerDriver model, final int position) {
                                    viewHolder.setName(model.getName());
                                    viewHolder.setName(model.getName());
                                    viewHolder.setFrom(model.getDepartureLocation());
                                }
                            };

                            mRecyclerview.setAdapter(firebaseRecyclerAdapter);
                            firebaseRecyclerAdapter.notifyDataSetChanged();

                        } else {
                            message = "Sorry! No matches for you.";
                            snackbarShow(message);
                            mRecyclerview.setVisibility(View.GONE);
                        }
                    } else {
                        message = "Sorry! Some records are missing";
                        snackbarShow(message);
                    }
                }
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {
                snackbarShow(databaseError.getMessage().toString());
            }
        });
    }
});
...