# #firebase #google-cloud-platform #google-cloud-firestore #nosql
Вопрос:
Я новый пользователь NoSQL, и я хочу знать, является ли эта идея ходом профессионального геймера или ошибкой новичка?
ЧЕГО Я ХОЧУ ДОСТИЧЬ
Я разрабатываю систему, которая использует хранилище firebase для управления данными, что позволяет зарегистрированным пользователям загружать изображения в различные элементы, такие как горы, еда, дом и т. Д. По разным темам, Поэтому вы заходите в одну из этих тем и загружаете изображение, связанное с этим, чтобы, когда другие пользователи переходят в раздел (горы, еда, дом и т. Д.), Могли визуализировать то, что было загружено.
ПРОБЛЕМА
Насколько я видел, пользователь не может хранить изображение с уникальным идентификатором, поэтому будут переопределения
«РЕШЕНИЕ»
Пользователь может хранить коллекцию предметов с идентификаторами uniques, поэтому, когда пользователь загружает изображение в такую тему, как Еда, изображения хранятся в их собственной коллекции с тегом темы, а также идентификаторы пользователей будут сохранены в файле. Поэтому, когда другие пользователи просматривают раздел продуктов питания, алгоритм будет просматривать пользователей, которые загрузили фотографию, затем просматривает их коллекцию изображений в поисках тега и извлекает это изображение.
Таким образом, еще одна проблема может заключаться в том, что будет много пользователей для поиска, поэтому мне пришло в голову создать папки, содержащие всех пользователей с одинаковыми 3 начальными буквами. Так что это облегчит поиск.
вопрос
Есть ли какой-нибудь способ сделать эту вещь лучше?
Любая документация или руководство очень помогут
Спасибо
Ответ №1:
Поэтому, когда пользователь загружает изображение в такую тему, как Еда, изображения хранятся в их собственной коллекции с тегом темы, а также идентификаторами пользователей, которые будут сохранены в файле.
Да, это обычная практика.
Поэтому, когда другие пользователи просматривают раздел продуктов питания, алгоритм будет просматривать пользователей, которые загрузили фотографию, затем просматривает их коллекцию изображений в поисках тега и извлекает это изображение.
Звучит хорошо. В коде должно выглядеть так:
val db = FirebaseFirestore.getInstance()
db.collection("photos").whereEqualTo("tag", "food")
Есть ли какой-нибудь способ сделать эту вещь лучше?
Нет, вы нашли самое простое и простое решение.
Комментарии:
1. Очень признателен за ваш ответ! У меня есть еще один маленький вопрос, знаете ли вы, как работает алгоритм этой службы (FireBase Auth)? Когда пользователи входят в систему (если все пользователи с идентификаторами находятся в одном пути), им просто нужно проверить один за другим, чтобы увидеть, есть ли совпадение?
2. Я не могу проголосовать в данный момент, Алекс, я действительно хотел бы ОТРЕДАКТИРОВАТЬ: Хорошо, вот и мой голос