2016-11-11 5 views
1

Я хочу SELECT * FROM products WHERE 'birthday' = true; Но могу ли я сделать то же самое с базой данных Firebase?Android Firebase Запрос базы данных с условием

Я попытался

DatabaseReference ref = FirebaseDatabase.getInstance().getReference(); 
ref. child("products").orderByChild("birthday").equalTo(true).addChildEventListener ........ 

Firebase Database image

Но это не work.Please помощь. f моя структура данных плохая, пожалуйста, также посоветуйте, как создать лучшую структуру.

ответ

2

Снимок экрана базы данных показывает, что birthday не является прямым дочерним элементом узла продукта: есть дополнительный шаг, for_purpose.

Ваш запрос должен следовать схеме именно поэтому обновить код запроса, как это:

DatabaseReference ref = FirebaseDatabase.getInstance().getReference(); 
ref.child("products") 
    .orderByChild("for_purpose/birthday") 
    .equalTo(true) 
    .addChildEventListener ... 

Обратите внимание, что для этого, чтобы работать эффективно, необходимо создать индексы для каждого возможного for_purpose ребенка в вашей правила безопасности. Или, по крайней мере, для тех, которые вы используете в запросах. Индексы должны соответствовать вашему запросу точно, при этом индекс на for_purpose не достаточен.

Для этого вопроса, вы должны по крайней мере, следующее:

{ 
    "rules": { 
    "products": { 
     ".indexOn": [ 
     "for_purpose/birthday", 
     "for_purpose/anniversary", 
     "for_gender/male", 
     ... 
     ] 
    } 
    } 
} 
+0

Hi vzsg, не могли бы вы посоветовать, как установить правила безопасности? Это верно? { "правила": { ".read ": "AUTH = нуль", " .WRITE ": "AUTH = нуль", "продукты": { " .indexOn ": [" for_purpose" , "for_gender"] } } } –

+0

Привет, vzsg, не могли бы вы посоветовать, как установить правило безопасности? Это верно? { "правила": { ".read ": "AUTH = нуль", " .WRITE ": "AUTH = нуль", "продукты": { " .indexOn ": [" for_purpose" , "for_gender"] } } } –

+0

Я отредактировал ответ с помощью примеров правил. – vzsg

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

  • Нет связанных вопросов^_^