2017-01-17 3 views
1

Моя firebase структура базы данных, как этотFirebase запрос с orderbychild и equalto (значение, ключ) не работает

items = [ 
id{ 
country: value 
likes: value 
... 
} 
] 

Я хочу, чтобы запросить элементы, упорядоченные по любит и отфильтрованные по стране Так я использую orderByChild запросов ("любит") equalTo (значение, "страна") limitToFirst (100)

Android код:..

DatabaseReference ref = mDatabase.child(remotePath); 

Query recentList = ref.orderByChild("likes"); 

if(!country.equals("")){ 
    recentList = recentList.equalTo(country, "country").limitToFirst(100); 
} 
recentList.addListenerForSingleValueEvent(); 

Но это не возвращает никакого результата. Есть ли способ работать? Мое предпочтение заключается в том, чтобы заставить это работать с запросом firebase и не изменять структуру моей базы данных, поскольку она уже используется.

+0

можете ли вы показать немного своего кода? ... также похоже, что есть очень похожие вопросы по этой же теме (см. связанные вопросы на этой странице) –

+0

@martin, Добавлен снимок кода. Я не нашел другого точного вопроса или ответа –

ответ

1

При заказе вашего запроса orderByChild("/*some child*/") метод equalTo(/*some value*/) относится к указанному ребенку. Вы используете неправильный параметр key.

См. this answer и документы Firebase, чтобы узнать больше о необязательном параметре keyequalTo.

+0

Спасибо. Похоже, в документации Firebase для Android нет упоминания о том, что присутствует в веб-документе. Ну, я думаю, я буду обрабатывать сортировку на локальном уровне. –

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