# #firebase #flutter #firebase-realtime-database
Вопрос:
var searchRef = _firestore
.collection("vehicles")
.where("models.plane", isEqualTo: "true")
.where("models.bus", isEqualTo: "true");
В этом методе запроса я могу запросить несколько значений, но я хочу сделать это динамически. Если пользователь входит в самолет, я хочу запросить самолет, или если пользователь входит в самолет и автобус, я хочу запросить самолет и автобус, или если пользователь входит в самолет, автобус и спортивный автомобиль, я хочу запросить самолет, автобус и спортивный автомобиль. То есть количество запрашиваемых переменных и переменные будут варьироваться от пользователя к пользователю.
Как я могу преобразовать этот код в динамический код.
Мои Документы Базы Данных
Комментарии:
1. может быть, позвонить куда -нибудь внутри какого-нибудь цикла?
2. Я пытался, но не смог найти правильный метод. Можете ли вы опубликовать динамически преобразованную версию этого кода с помощью указанного вами метода?
3.
Query query = _firestore..collection("vehicles"); loop { query = query.where(...); }
— это псевдокод: вам нужно...
заменить фактические данные на основе текущей итерации цикла, надеюсь, вы поняли идею4. Вы можете создать запрос со всеми вашими параметрами, и вы можете избежать некоторых параметров в запросе, передав нулевое значение. например, если вы хотите выполнить поиск самолета и автобуса, укажите значение места и автобуса и оставьте спортивный автомобиль пустым. Это сработает.
5. Если вы получите ошибку запроса, вам необходимо создать индекс для этого запроса, который использует несколько условий where. Для этого вы получите одну ссылку в журнале консоли. Нажмите на эту ссылку, и индекс будет создан автоматически.