Как я могу получить параметр объекта массива с помощью firestore? - PullRequest
0 голосов
/ 16 апреля 2020

Я хочу получить Q2 массив , и он содержит D1 * значение .

{

'A': {
  'Q1': 'A1',
  'Q2': [
   {'D1': 'hello'}
  ]
 },

'B': {
  'Q1': 'A1',
  'Q2': [
   {'D1': 'hello'}
  ]
 }

}

Я пытался сделать запрос вот так.

  1. where('Q2.D1','==','hello')
  2. where('Q2.D1','array-contains','hello')
  3. where('Q2','array-contains',{D1: 'hello'})
  4. ...

Но они не работают: (

1 Ответ

0 голосов
/ 16 апреля 2020

Firestore не поддерживает запрос значений карты внутри массивов. Единственное, что вы можете запросить в массиве - это элемент массива whole . Таким образом, вы можете искать все значение {'D1': 'hello'}, а не только значение поля карты 'hello'.

Для этого вам потребуется добавить новую структуру или изменить то, что у вас есть. Например, вы можете создать новый массив со всеми возможными значениями D1 и использовать запрос, содержащий массив, чтобы найти документы с указанным вами D1.

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