Как отобразить на главной странице только данные, запрошенные пользователем, с помощью flutter и Google firestore?

#firebase #flutter #dart #firebase-realtime-database #google-cloud-firestore

#firebase #flutter #дротик #firebase-realtime-database #google-cloud-firestore #dart

Вопрос:

Я пытаюсь найти способ создать часть моей программы, которая показывает кучу ресторанов. Проблема в том, что я хочу, чтобы мой клиент мог искать, в каких областях он хочет, чтобы его ресторан находился, и / или сколько звезд должно быть у ресторана. Теперь в моем firestore у меня есть коллекция под названием рестораны, и у меня есть области в качестве документов коллекции, а затем у меня есть рейтинги ресторанов в качестве вложенных коллекций каждого документа, и, наконец, у меня есть имя, номера телефонов и полный адрес в качестве документов каждой вложенной коллекции. Я понятия не имею, как указать моей программе показывать только рестораны, которые находятся в определенных районах или имеют определенное количество звезд.

Допустим, я хочу, чтобы мои рестораны находились только в Лос-Анджелесе и Комптоне, и у них должно быть либо 2, либо 3 звезды.

Как я могу сохранить информацию в firestore и как я должен ее получить, чтобы моя программа отображала только рестораны с нужной информацией.

Я искал по всему Интернету и застрял на этой проблеме в течение 2 дней, поэтому любая помощь была бы абсолютно оценена.

Заранее спасибо 🙂

Комментарии:

1. Я думаю, вы можете найти все свои вопросы в официальном руководстве firestore для начинающих на официальной Google Firebase: часть 1 . В этом руководстве 6 частей, и я думаю, что у них точно такой же пример с ресторанами.

2. Фильтрация по количеству звездочек так же проста, как фильтрация по имени и номеру телефона. Фильтрация по географическому местоположению называется географическим запросом. Firebase напрямую не поддерживает геозапросы, поэтому все, что вы можете сделать, это преобразовать ваши местоположения в геохеш и отфильтровать на их основе.

3. @Hazaaa большое вам спасибо!

4. @Abion47 большое вам спасибо

Ответ №1:

Публикуем это как Вики сообщества, основываясь на предоставленных комментариях.

В этом видео-руководстве, здесь, вы должны иметь возможность получить хорошее представление о том, как вы можете запрашивать в Firestore, в основном, именно то, что вы пытаетесь сделать. Кроме того, у вас также есть это разъяснение в тексте здесь, для лучшего объяснения. В официальной документации также есть этот репозиторий с кодом о том, как достичь этой цели.

Что касается части геолокации, вам нужно будет поработать с географическими запросами. Firebase напрямую не поддерживает географические запросы, поэтому вы можете преобразовать свои местоположения в geohash-фильтр с помощью этого.