Как запросить два значения внутри массива в Firebase firestore, где одно значение индексируется после другого?

#javascript #firebase #google-cloud-firestore

# #javascript #firebase #google-cloud-firestore

Вопрос:

Есть ли какой-либо способ выполнить запрос через массив строковых значений в firebase firestore, который должен содержать две строки a и b, НО строка b должна быть указана после строки a?

Пример: у меня есть два строковых значения, которые я хотел бы запросить:

 a = "12345"
b = "67890"
 

И я сохранил несколько документов в firebase firestore, которые могут выглядеть следующим образом:

 document1 = {
    id: "randomId1",
    // ...other stuff
    array: ["12345","345", "67890"]
}

document2 = {
    id: "randomId2",
    // ...other stuff
    array: ["67890","345","12345"]
}
 

Теперь я хочу получить только document1 в результатах моего запроса, потому что значение b указано после значения a в разделе array . Как я могу это сделать?

Ответ №1:

В firestore нет способа выполнять такие запросы, вы можете только определить, имеет ли он это значение или нет.

Возможные решения:

  1. Сохраните логическое значение внутри вашего документа, которое определяет, соответствует ли этот документ вашим потребностям.
  2. Загрузите все документы, содержащие оба значения, и проверьте их порядок на стороне клиента.
  3. Вероятно, вам следует реструктурировать свою базу данных, это обычно помогает в таких случаях.