В вашем коде нет ничего плохого, в ваших ожиданиях что-то не так. (я всегда хотел написать это как ответ:))
Функция startAt()
служит отправной точкой для вашего запроса, а не фильтром.Таким образом, в вашем случае он найдет первое вхождение слова «Джон» и вернет все с этого момента (включая Джоэла, Кевина, Тима и т. Д.).
К сожалению, прямого способа сделать это не существуетзапрос where findKey contains the string "john"
.Но, к счастью, есть (частичный) обходной путь с использованием endAt()
.
Ваш запрос будет выглядеть следующим образом:
orderBy="findKey"&startAt="john"&endAt="john\uf8ff"
Здесь \uf8ff
- последний символ Unicode (пожалуйста, исправьте меня, еслиЯ не прав).
При этом вы можете запросить значения, которые начинаются с "john", например, "johnnie", "johnn", "john".Но не "1john" или "johm" или "joel".