Как избежать бесконечности составленных индексов в каминах - PullRequest
0 голосов
/ 26 марта 2019

Я занимаюсь социальными сетями, и в моих сообщениях у меня есть «теги» (практическая бесконечность, поскольку их больше 200), я хочу, чтобы мои пользователи фильтровали и теги, и дату, например:

myRef.where ("tag" == "tagName"). OrderBy ('date', 'asc')

НО ... У меня есть бесконечное число tagNames, что вызывает у меня шок иЯ не могу справиться.

Должен ли я создать собственную карту с разделами размером 1 м ???Должен ли я создать собственный идентификатор с данными на нем ???Как я смогу смешивать данные asc с этими запросами или смешивать два или более типов вместе?

1 Ответ

0 голосов
/ 26 марта 2019

Для вашего запроса требуется индекс на tag + date, , а не на tagName + date.

Но если вы хотите сохранить список тегов для каждого документа, вам нужно сохранить их в массиве, а затем использовать array-contains, чтобы проверить, имеет ли документ определенный тег. Чтобы увидеть, существует ли tagName в массиве значений String tag, вам нужно запросить:

myRef.where("tag", "array-contains", "tagName").orderBy('date', 'asc')

Подробнее об этом см. Улучшенные массивы в облачном хранилище огней!

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