Как показать документы, сделанные определенным участником в Firestore (Android)? - PullRequest
1 голос
/ 12 июля 2019

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

Например: Мой UID: x54asdASD544

Тогда я пытаюсь сделать этот запрос:

Query query = mMembersDB.document("POST").collection("x54asdASD544").whereEqualTo("type", "public").orderBy("date");

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

Например:

Query query = mMembersDB.document("POST").collection("x54assds").whereEqualTo("type", "public").orderBy("date");

UID изменился , , тогда ранее созданный индекс больше не работает.

  • Любое решение, чтобы иметь возможность это исправить?
  • Есть ли способ автоматически создавать индексы?

1 Ответ

1 голос
/ 12 июля 2019

Каждая коллекция и подколлекция с уникальным именем должны иметь свои собственные индексы.Вы не можете делиться определениями индексов между коллекциями.Они должны быть определены отдельно.Невозможно автоматически создавать индексы.

Именование подколлекции на основе UID не похоже на очень эффективный способ моделирования ваших данных.Подумайте о том, чтобы поместить все документы в одну коллекцию, поместите UID в качестве поля для этих документов и используйте UID в качестве фильтра, чтобы найти то, что вам нужно.

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