Создание сложного запроса в firebase firestore в Android - PullRequest
0 голосов
/ 13 апреля 2020

У меня есть коллекция "Orders", имеющая структуру, подобную этой

dishname :
  "Biryani"
dishprice: 
  "350"
dishquantity: 
  "1"
hotelemail: 
  "apk@gmail.com"
hotelname : 
  "Apk"
time
  April 13, 2020 at 2:51:11 PM UTC+5
useremail
  "checking@gmail.com"
username
  "pasha"
usernum
  "03416889912"
orderstatus
  "Pending"

Теперь я хочу выполнить запрос к этой коллекции, который похож на это, получить ВСЕ заказы, где (orderstatus == "Pending "ИЛИ (orderstatus ==" собрано "И useremail =" someemail ") ИЛИ (orderstatus ==" отправлено "И использоватьremail =" someemail ")

1 Ответ

1 голос
/ 13 апреля 2020

То, что вы пытаетесь сделать, невозможно в одном запросе, поскольку Firestore не поддерживает логическое ИЛИ , как вы указали здесь. Вместо логического ИЛИ вам придется вместо этого выполнять отдельные запросы для каждого условия ИЛИ и объединять результаты в клиенте. Итак, в вашем конкретном случае c вам потребуются три запроса для:

  • orderstatus == "Ожидание"
  • (orderstatus == "собрано" И useremail = "someemail" ")
  • (orderstatus ==" distapched "AND useremail =" someemail ")

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...