2014-09-20 2 views
0

Я хотел бы запросить мои данные с запросом, который вернет мне все по радиусу (геофир может найти это хорошо), но также и в окне datetime.Могу ли я использовать GeoFire из Firebase с приоритетом в одном запросе?

В настоящее время я сохраняю datetime как приоритеты, поэтому довольно легко запросить массив, запрашивающий данные между двумя номерами приоритетов (соответствующими дате начала и конца).

Также довольно легко поместить мои данные в массив GeoFire, а затем запросить его для получения радиуса.

Могу ли я объединить эти 2? Легко ли не слишком хакерским способом?

Cheers

+0

Для каждого узла существует одна .prityity. Если вы можете найти способ объединить ваше время и время и геохэши в единый приоритет, вы можете запросить их комбинацию. Но маловероятно, что в вашем прецеденте вы можете объединить два. –

ответ

1

Не с одним запросом. Вы должны либо фильтровать клиентскую сторону, либо выполнять свой запрос в более чем одной фазе.

Это потому, что:

  • Каждый узел ограничивается одним priority value.
  • За это blog post, GeoFire использует приоритет для хранения geohash, который он использует для поиска.

Самый простой способ справиться с этим - сделать дополнительную фильтрацию на стороне клиента. Если влияние полосы пропускания начинает вызывать проблемы, разделяйте свои данные (например, групповые события по месяцам) и делайте это в несколько этапов.

+0

Привет, спасибо за ваш ответ. Я вижу, что startWith принимает как имя, так и приоритет в качестве аргументов. Означает ли это, что я могу использовать их как первичные и вторичные индексы и, следовательно, делать запрос на основе обоих из них? Например, назовите их своим timetamp и назначьте их с их geohash ->, затем используйте startWith (sometimestamp, somegeohash) и т. Д. – STE

+1

Yup, я думаю, вы могли бы. Единственное предостережение может заключаться в том, что приоритет не гарантированно будет уникальным. – mimming

+0

Спасибо :) Если вы хотите добавить его к своему ответу, я могу принять его как ответ на мой вопрос – STE

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