Firestore: запрос случайного документа, который еще не был просмотрен - PullRequest
0 голосов
/ 10 мая 2018

У меня есть база данных Firestore, где у меня есть коллекция Users и коллекция Animals (эти животные могут быть созданы пользователями в любое время).Для конкретного пользователя я хочу получить документ случайного животного, который пользователь еще не видел.

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

Спасибо за любую помощь заранее!

1 Ответ

0 голосов
/ 10 мая 2018

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

В запросах Firestore нет случайности.Если вы хотите что-то случайное, вам придется выбрать это в своем коде из набора элементов в памяти.Это означает, что, по крайней мере, вам придется сначала выяснить, как сделать запрос для всех животных, которых пользователь еще не видел, а затем выбрать случайным образом из этого набора в коде приложения.

ВыПравильно предположить, что вам понадобится какая-то коллекция, в которой записано, кто видел какое животное, а затем запросить у нее список невидимых животных.Затем вы можете случайным образом выбрать из этого окончательного документа о животном.

И для этого вам понадобится еще одна коллекция документов, в которых будет записано, кто видел какое животное ранее.

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