Как получить эти данные из базы данных Firebase - PullRequest
0 голосов
/ 03 мая 2018

Я работаю над приложением для Android, его данные хранятся в базе данных Firebase. name=dataSnapshot.child(email).child(dt+" "+).getValue(Warden.class).getName(); В этом фрагменте я хочу получить доступ к узлу из базы данных, где узлы названы как: комбинация текущей даты и любого числа.

Я могу получить текущую дату, используя класс Date (используя переменную 'dt'), но не могу получить число, т. Е. Не могу получить комбинацию для поиска по этому узлу. Я попытался использовать регулярное выражение, но не смог этого сделать. Я хочу получить строку, которая начинается с текущей даты и заканчивается трехзначным числом. пожалуйста, помогите мне в этом, спасибо в знак благодарности.

-Warden
   |-ahilyabhawan
   |-ashokbhawan
       |-Apr 18, 2018 339
           |-bhawan: "Ashok Bhawan"
           |-date: "May 6, 2018"
           |-gender: "Male"
           |-intime:"14 : 28 pm"
           |-mobile:"9785648810"
           |-room_no: "359"
           |-student_id: "Coer ID: 14041044"

       |-Apr 24, 2018 349
       |-May 1, 2018 129
       |-May 11, 2018 156
       |-May 2, 2018 223

      DateFormat df=DateFormat.getDateInstance(DateFormat.MEDIUM);
      dt=df.format(d);
  databaseReference.addListenerForSingleValueEvent(new ValueEventListener() 
  {     
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {

            if(dataSnapshot.hasChild(email)){


                name=dataSnapshot.child(email).child(dt+" "+"?").getValue(Warden.class).getName();    //***** line 1 *****
                student_id=dataSnapshot.child(email).child(dt+" "+"?").getValue(Warden.class).getStudent_id();
                if(name!=null&&student_id!=null) {
                    progressDialog.dismiss();
                    arrayList.add(dt + " \n" + name + "\n" + student_id);
                }


            }

        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

Теперь проблема, с которой я сталкиваюсь, заключается в том, что я хочу получить доступ к каждому дочернему узлу " ashokbhawan ", который содержит текущую дату и любое трехзначное число. Теперь я могу получить текущую дату, но мне нужна комбинация текущей даты и любого трехзначного числа. Как я могу получить это?

1 Ответ

0 голосов
/ 09 мая 2018

Вы должны использовать возможности фильтрации базы данных реального времени Firebase ( документация ) и создать запрос, подобный следующему, и использовать соответствующий слушатель (см. Документ, предыдущая ссылка):

Query query = databaseReference.child("posts").child("Warden/ashokbhawa").startAt('Apr 18, 2018').endAt('Apr 19, 2018');

Конечно, вы должны передать правильные значения в качестве переменных.


Примечание: я бы посоветовал вам хранить даты в формате ГГГГММДД

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