2016-12-08 8 views
0

я следующие базы данныхAndroid firebase применить несколько запросов

-KYTfJZQbg0RVzHeecIS 
    createdAt: 1481204648530 
    message: "rgd" 
    read: false 
    reciever: "583d15cf45f3330807364c55" 
    sender: "58490e9945f33364ac6cd7b1" 
    updateAt: 1481204648654 

Теперь я хочу, чтобы отфильтровать результат для "READ" == FALSE и "SENDER" == 58490e9945f33364ac6cd7b1

, как я могу добиться этого?

Любая помощь будет оценена Благодарности

EDIT: -

Я использую это в андроида, как

Query query = reference.orderByChild("read").equalTo(false) 
       .orderByChild("sender").equalTo(datum.getEmployer().getEmployerId()); 

он дал java.lang.IllegalArgumentException: You can't combine multiple orderBy calls!

ответ

3

К сожалению, это не так просто, используя Firebase ..... есть хороший пример сделать что-то очень похожее в следующем видео парней Firebase (около 9 mins in) https://www.youtube.com/watch?v=sKFLI5FOOHs&list=PLl-K7zZEsYLlP-k-RKFa7RyNPa9_wCH2s&index=4

+0

Мы не можем использовать несколько OrderBy как этот запрос запрос = reference.orderByChild ("чтение") equalTo (ложь) .orderByChild ("отправитель") equalTo (datum.getEmployer().. .getEmployerId()); иначе он будет генерировать исключение: - java.lang.IllegalArgumentException: вы не можете комбинировать несколько вызовов orderBy! –

+0

да, это именно то, что обсуждается в разделе того видео, о котором я говорил выше. –

+0

@ JohnO'Reilly, как добиться результата? –

0

Несколько запросов orderbychild() не поддерживаются firebase.

Теперь я хочу, чтобы отфильтровать результат для «READ» == FALSE и «SENDER» == 58490e9945f33364ac6cd7b1

Создайте новый ключ в ваших данных, т.е. READ_SENDER и объединять данные для обоих и использования запрос, как это -

-KYTfJZQbg0RVzHeecIS 
    createdAt: 1481204648530 
    message: "rgd" 
    read: false 
    reciever: "583d15cf45f3330807364c55" 
    sender: "58490e9945f33364ac6cd7b1" 
    read_sender : "false_58490e9945f33364ac6cd7b1" 
    updateAt: 1481204648654 


Query query = reference.orderByChild("read_sender").equalTo("false_"+datum.getEmployer().getEmployerId()); 
Смежные вопросы