2017-01-22 3 views
2

Я хочу создать приложение, в котором любой пользователь может добавить объявление (объявление) с тем, что он хочет продать. Это структура базы данных в режиме реального времени в Firebase:Отфильтровать базу данных реального времени Android

- advert 
    - category 
     - {uid} 
      - title 
      - price 
      - description 
      - location 

Я хочу, чтобы позволить пользователю фильтровать объявления по категориям, названию и цене.

В настоящее время я могу фильтровать объявления только по названию, как это:

FirebaseDatabase.getInstance().getReference() 
        .child("adverts") 
        .orderByChild("title") 
        .startAt("tv") 
        .limitToFirst(20) 

У меня есть 3 вопроса:

  1. Как я могу добавить больше "и положения"? Или как я должен структурировать узлы для фильтрации большего количества значений?
  2. Как я могу сортировать значения, получаемые с сервера в порядке возрастания или убывания в зависимости от uid?
  3. Кажется, что метод startAt ("abc") не извлекает только те дети, которые содержат в заголовке "tv". Я делаю что-то неправильно? Как я должен получать только те дети, которые содержат строку «tv»?

ответ

1
  1. На firebase, нет никакого способа, чтобы добавить "и положения". Вы должны структурировать свои данные таким образом, который соответствует вашим потребностям фильтрации.

  2. Я считаю, что firebase уже сортирует данные по uid.

  3. Если вы хотите получать только дети, которые содержат строку «ТВ», вы должны использовать этот запрос:

    FirebaseDatabase.getInstance().getReference().child("adverts").orderByChild("title").startAt("tv").endAt("tv").limitToFirst(20);

я предлагаю что вы смотрите Firebase Database for SQL Developers Series. У него есть ответы на 3 из ваших вопросов.

+0

Спасибо за ваш ответ! И спасибо за видео. Я не знал о видео. 1. Как я могу структурировать данные в моем случае? 2. Firebase уже сортирует данные по uid, но что, если я хочу, чтобы данные сортировались иногда в порядке возрастания, а иногда и в порядке убывания. Как мне это изменить? – Andrew

+0

Я просто смотрел видео, и кажется, что вы НЕ МОЖЕТЕ добавить больше «И КЛАССА», и вы НЕ МОЖЕТЕ получить детей, которые СОДЕРЖАЮТ STRING. Firebase просто разочаровал меня! – Andrew

+0

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

Смежные вопросы