Firestore: возможно ли иметь дубликаты автоматически сгенерированного идентификатора для разных подколлекций? - PullRequest
0 голосов
/ 27 апреля 2018

У меня есть коллекция Shop, в каждом магазине есть коллекция предметов. Документ элемента имеет свойство isAvailable, которое является логическим.

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

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

Моя проблема: поскольку я дублирую все подколлекции в одной коллекции и использую один и тот же идентификатор документа, в итоговой большой коллекции могут быть дубликаты, верно?

1 Ответ

0 голосов
/ 27 апреля 2018

Короче говоря, автоматически генерируемые идентификаторы являются статистически уникальными с достаточной вероятностью, чтобы рассматривать их постоянно. Смотрите здесь .

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

Что касается вашей структуры данных, я бы не рекомендовал дублировать, так как одно из преимуществ firestore - избегать этого по сравнению с базой данных реального времени, которая в некоторых случаях вам понадобится.

Также избегайте массивов настолько, насколько это возможно, и используйте объект вместо того, чтобы запрашивать их.

Как я понимаю, вы просто хотите убедиться, что предметы доступны. Я предлагаю вам проверить, когда пользователь хочет перейти к оформлению заказа или в любое время, когда страница обновляется, и таким образом вы гарантируете, что недоступный продукт приобретен. Вот и все.

Если у вас все еще есть проблема, возможно, дайте мне снимок ваших данных, а не объясните, что-то вроде ShopsCollection - itemDocument - isAvailable: true

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