Как получить все данные из узла в Android базе данных Firebase в реальном времени? - PullRequest
0 голосов
/ 23 апреля 2020

Это мои данные о базе данных:

enter image description here

Я хотел получить все данные от потомка («Registo Inicial e Final») и отобразить в таблица или в виде списка.

Мой код от android studio:

reff2 = database.getInstance().getReference().child("Registo Inicial e Final");

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


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

                        Log.e("MATRICULAAAAAAAAAAAAA", String.valueOf(ds.child("matricula").getValue()));


                        try {


                            if (ds.child("matricula").getValue().equals(editText_Matric.getText().toString())) {

                                String message = ds.child("nome_CONDUTOR").getValue().toString();
                                String message2 = ds.child("matricula").getValue().toString();
                                String message3 = ds.child("cod_PROJETO").getValue().toString();
                                String message4 = ds.child("km_INICIAL").getValue().toString();
                                String message5 = ds.child("km_FINAL").getValue().toString();
                                String message6 = ds.child("data_INICIO").getValue().toString();
                                String message7 = ds.child("data_FIM").getValue().toString();
                                String message8 = ds.child("hora_INICIO").getValue().toString();
                                String message9 = ds.child("hora_FIM").getValue().toString();
                                String message10 = ds.child("observacoes").getValue().toString();

                                Nome.setText(message);
                                Matricula.setText(message2);
                                Cod.setText(message3);
                                Kilometros_inicial.setText(message4);
                                Kilometros_final.setText(message5);
                                Data_inicial.setText(message6);
                                Data_final.setText(message7);
                                Hora_inicial.setText(message8);
                                Hora_final.setText(message9);
                                Observacoes.setText(message10);

Вывод:

Отображаются данные только из одной записи (только с одной пожарной базы pu sh key), но мне нужны все данные со всех pu sh ключей ..

enter image description here

Спасибо все.

Ответы [ 2 ]

0 голосов
/ 23 апреля 2020

Происходит следующее: вы получаете полный снимок со всеми дочерними элементами, а затем ваше утверждение if (ds.child("matricula").getValue().equals(editText_Matric.getText().toString())) отфильтровывает все остальные дочерние элементы, кроме случаев, когда matricula равно txt в editText_Matric. На скриншоте показано, что текстовое значение editText_Matri c было "90-29-VE", поэтому вы получили только один результат для Мигеля Карвалью.

0 голосов
/ 23 апреля 2020

Вы не читаете все данные, потому что вы указали if-statement, чтобы получить только те данные для соответствующей строки matricula, которая напечатана в EditText:

Удалить это if-statement

if (ds.child("matricula").getValue().equals(editText_Matric.getText().toString())) {

......
.....

И вы получите все значения, затем, возможно, сохраните их в list

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