Тогда я использовал ссылку на базу данных. Почему я передаю все пользовательские данные в программу просмотра отходов, я хочу, чтобы только одна пользовательская информация отображалась в программе просмотра отходов? - PullRequest
1 голос
/ 20 октября 2019

Ниже приведен мой текущий скриншот просмотра recyler ... я получаю данные о состоянии пребывания по всем 8 узлам, все нормально, когда я ищу одного пользователя, но также добавляю в список данных пользователя данные о состоянии по умолчанию, которые я не хочу.

Моя база данных Firebase имеет следующую структуру:

My Firebase DataBase Structure

Мне нужен только один пользователь "staydetails". Вместо этого в моем адаптере утилизатора я получаю все пользовательские данные.

Когда я добавляю данные о нескольких пользователях и их комнатах при поиске одного пользователя, это дает мне все данные о пользователях в адаптер. Вот мое представление рециркулятора MainActivity с использованием адаптера и базы данных. Заранее спасибо

    final String userformno = mobileorformnosearch.getText().toString().trim();
    globalmobileno = userformno;
    if (userformno.trim().length() == 10) {
        list.clear();
        PassDataRef = FirebaseDatabase.getInstance().getReference().child("Passanger");
        PassDataRef.addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                for (DataSnapshot datas : dataSnapshot.getChildren()) {


                    if (dataSnapshot.hasChild(userformno)) {
                        // run some code

                        //MobileNoDataWise
                        UserDataRegistration user = dataSnapshot.child(userformno).getValue(UserDataRegistration.class);

                        YatriName.setText(user.getUsername());
                        YatriAge.setText(user.getAge());
                        YatriCity.setText(user.getCity());
                        Yatriphonenumber.setText(user.getMobileno());
                        YatriformNo.setText(user.getFormno());
                        YatriCoachNo.setText(user.getCoachno());
                        YatriSeatNo.setText(user.getSeatno());
                        YatriBearth.setText(user.getBearth());
                        YatriBusno22.setText(user.getBustwono());
                        YatriBusSeatNo22.setText(user.getBustwoseatno());
                        YatriBusno32.setText(user.getBusthreeno());
                        YatriBusSeatNo32.setText(user.getBusthreeseatno());
                        YatriPhotoUri.setText(user.getProfilephoto());
                        YatriGender.setText(user.getGender());
                        YatriMBusno.setText(user.getMbusno());
                        YatriMBusSeatno.setText(user.getMseatno());
                        // String url ="https://firebasestorage.googleapis.com/v0/b/uttammangal-ad8b8.appspot.com/o/profilepic%2F223.jpg?alt=media&token=703bcc8f-c2c3-4beb-bffc-40e52daa572d";// user.getProfilephoto();
                        String Url = user.getProfilephoto();
                        if (Url != null) {

                            Picasso
                                    .get()
                                    .load(Url)
                                    .resize(200, 200) // resizes the image to these dimensions (in pixel)
                                    .centerCrop()
                                    .into(YatriImageView);
                            // Glide.with(getApplicationContext()).load(Url).into(YatriImageView);
                        } else {

                            Toast.makeText(MainActivity.this, "NO Image Found!!", Toast.LENGTH_LONG).show();

                        }

                        RecycleDataRef = FirebaseDatabase.getInstance().getReference("Passanger");
                        list.clear();
                       Query  qry = RecycleDataRef.child(userformno).child("StayDetails");
                        qry.addListenerForSingleValueEvent(new ValueEventListener() {
                            @Override
                            public void onDataChange(@NonNull DataSnapshot dataSnapshot1) {
                                for (DataSnapshot dataSnapshot2 : dataSnapshot1.getChildren()) {
                                    //UserDataRegistration user = dataSnapshot.child(userformno).getValue(UserDataRegistration.class);

                                        UserDataRetrieve u = dataSnapshot2.getValue(UserDataRetrieve.class);
                                        //UserDataRetrieve u = dataSnapshot1.getValue(UserDataRetrieve.class);

                                        list.add(u);

                                }

                                adapter = new MyAdapter(MainActivity.this, list);

                                recyclerView.setAdapter(adapter);
                            }

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

                            }
                        });


                    } else {
                        Toast toast = Toast.makeText(MainActivity.this, "No Record Found!!!!!", Toast.LENGTH_SHORT);
                        toast.setGravity(Gravity.CENTER, 0, 0);
                        toast.show();
                        break;
                    }

                }//ForloopClosing
                return;
            } //Main DataSnapshot Profile Data closing


            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {
                Toast.makeText(MainActivity.this, "Please Enter Valid MobileNo!!", Toast.LENGTH_LONG).show();

            }


        }); //addvaluelistner main profile Data Closing

        //} //Query node equals closing


    } else {
        Toast.makeText(MainActivity.this, "Please Enter 10 Digit MobileNo!!", Toast.LENGTH_LONG).show();

    }

} //OnClick Closing

1 Ответ

0 голосов
/ 20 октября 2019

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

FirebaseDatabase.getInstance().getReference().child("Passanger").child(userformno).addListenerForSingleValueEvent(
        new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                UserDataRegistration user = dataSnapshot.getValue(UserDataRegistration.class);

                ...

                if(dataSnapshot.hasChild("StayDetails")) {
                    for (DataSnapshot dataSnapshot2 : dataSnapshot.child("StayDetails").getChildren()) {
                        UserDataRetrieve u = dataSnapshot2.getValue(UserDataRetrieve.class);
                        //UserDataRetrieve u = dataSnapshot1.getValue(UserDataRetrieve.class);
                        list.add(u);
                    }

                   ...

                }
            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {
                Toast toast = Toast.makeText(MainActivity.this, "No Record Found!!!!!", Toast.LENGTH_SHORT);
                toast.setGravity(Gravity.CENTER, 0, 0);
                toast.show();
            }
        }
);

Надеюсь, это даст вам точные данные, которые вы хотите.

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