Индекс Firestore для пользовательских, специфичных для пользователя полей документа - PullRequest
0 голосов
/ 02 мая 2019

У меня есть приложение, содержащее категории элементов.Каждая категория имеет набор полей, определенных пользователем:

Category -> Rooms         Category -> Windows
  Fields                    Fields
    wall-color                frame-material
    wall-height               glass-type
    ...                       ...

Эти определенные поля теперь появляются на каждом элементе в этой категории.Каждый может содержать уникальное значение для каждого элемента:

Office 100              Office 200             Window A
  wall-color: blue        wall-color: red        frame-material: metal
  wall-height: 13'-7"     wall-height: 10'-0"    glass-type: double

Теперь я хочу, чтобы пользователи имели возможность запрашивать свои элементы на основе значений в этих настраиваемых полях:

this.firestore.col(`/projects/elements`,ref => ref.where('wall-color','==','blue'))

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

1 Ответ

0 голосов
/ 02 мая 2019

Если я правильно понимаю, что вам нужно знать список (существующих) значений для каждого поля для каждого пользователя , чтобы построить запросы (например, во внешнем интерфейсе с раскрывающимися списками, показывающимисуществующие значения), вы можете хранить эти значения в документе профиля пользователя, возможно, в некоторых массивах.

Это означает, что, например, когда вы пишете новый документ Room, вы обновляете профиль пользователя новым значением wall-color (используя пакетную запись и arrayUnion()).

Вы запросите этот документ профиля пользователя, когда пользователь откроет приложение.

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