У меня есть набор статических и предварительно определенных дел, которые каждый пользователь в моем приложении должен иметь в своем аккаунте как завершенный.
В данный момент я использую карту элемента todo, которая указывает, кто из пользователей выполнил задание. Моя модель данных на данный момент выглядит так:
- todos (collection)
- todoA (document)
- title, description etc
- completedBy {
uid1: true,
uid2: true,
uid3: false
}
Это позволяет мне легко устанавливать задачи как завершенные / не завершенные для каждого пользователя, и я могу легко фильтровать / запрашивать. У него есть два недостатка:
- Один документ Firestore может «только» иметь 20 000 свойств. Если мое приложение станет большим, это будет проблемой.
- Размер документа
Я думал о том, чтобы, возможно, создать аналогичную карту в моем пользовательском документе, установив идентификаторы todo как true / false. Это избавило бы от двух недостатков, описанных выше, но мне нужно было бы два запроса к базе данных всякий раз, когда я получаю свои задачи, один для задачи и один, чтобы проверить, завершено ли это.
Есть ли лучший способ достичь желаемой функциональности в Firestore?