Я пытаюсь использовать второй аргумент equalTo(value, key)
при использовании orderByPriority()
, как documented here.Firebase orderByPriority используется с equalTo странное поведение
Проблема заключается в том, что результаты несовместимы при использовании этого второго аргумента key
.
Пример набора данных
items
key1
key2
key3
key4
Все детали имеют одинаковый приоритет: 10 (это только для примера, в моем приложении есть и другие элементы с другими приоритетами)
При получении следующего запроса Firebase, чтобы получить первые два элемента с таким приоритетом:
dbRef.child('items').orderByPriority().equalTo(10).limitToFirst(2)
я получаю следующие - ожидаемые - результаты:
{ "key1": ..., "key2": ... }
Тогда я стараюсь, чтобы получить результаты после key2
пункта, как описано в документации:
dbRef.child('items').orderByPriority().equalTo(10, 'key2').limitToFirst(2)
Результат довольно странный, всегда есть только один элемент, один с предоставленным ключом:
{ "key2": ... }
Что я ожидал, что это два результата начиная с или после ключ, предоставленный, так
{ "key2": ..., "key3": ... }
Или
{ "key3": ..., "key4": ... }
Вопрос
Как использовать фильтр equalTo()
со вторым аргументом?
Казалось, этот вопрос был already asked, но он не получил ни одного ответа ...
Это не работает: 'Ошибка: Query.orderByKey: вы не можете комбинировать несколько вызовов orderBy'. Кроме того, где вы видели, что фильтр 'equalTo()' получит только элемент, соответствующий ключу? Документы говорят: «Детский ключ для начала, среди детей с указанным ранее приоритетом». – Pandaiolo
Это моя ошибка. Я редактировал свой пост, посмотрю. –
И чтобы ответить на ваш вопрос, вам разрешено фильтровать только одно значение. Это просто характер запросов Firebase –