Вы можете использовать только одно предложение orderByChild()
в своем запросе, поэтому кажется, что ваше второе предложение перезаписывает первое, и вы просто получаете предложения с request_status===true
.
Из документации :
Запросы можно заказывать только по одному ключу за раз. Вызов orderByChild ()
несколько раз по одному и тому же запросу выдает ошибку
Мое предложение состоит в том, чтобы либо реорганизовать текущую структуру данных, чтобы сделать возможным более простой запрос, либо использовать новое третье поле, объединяющее как requests_receiveing_status
, так и request_status
, они выполняют ваш запрос в этом объединенном поле. Примерно так:
{
"requests_receiving_status_and_status": "false_true";
}
и запросить его следующим образом:
let query = ref.orderByChild('requests_receiving_status_and_status').equalTo('false_true');
Теперь я знаю, что это кажется хакерским и неэффективным, но на самом деле это правильный подход для Firebase.
Но, если вы предпочитаете более чистое решение, попробуйте разделить ваши объекты в двух отдельных списках, один для request_receiving_status true, а другой для ложных, они ищут только в ложных, используя query = ref.orderByChild('requests_status').equalTo(true);
. Это добавляет избыточность, но это еще один правильный подход к базам данных NoSql.
Кроме того, посмотрите это видео и посмотрите, поможет ли оно вам решить эту проблему.