Короче говоря, автоматически генерируемые идентификаторы являются статистически уникальными с достаточной вероятностью, чтобы рассматривать их постоянно. Смотрите здесь .
Также в пожарном депо расчет на основе времени был удален, поэтому идентификаторы больше не являются хронологическими по сравнению с базой данных в реальном времени.
Что касается вашей структуры данных, я бы не рекомендовал дублировать, так как одно из преимуществ firestore - избегать этого по сравнению с базой данных реального времени, которая в некоторых случаях вам понадобится.
Также избегайте массивов настолько, насколько это возможно, и используйте объект вместо того, чтобы запрашивать их.
Как я понимаю, вы просто хотите убедиться, что предметы доступны. Я предлагаю вам проверить, когда пользователь хочет перейти к оформлению заказа или в любое время, когда страница обновляется, и таким образом вы гарантируете, что недоступный продукт приобретен. Вот и все.
Если у вас все еще есть проблема, возможно, дайте мне снимок ваших данных, а не объясните, что-то вроде
ShopsCollection
- itemDocument
- isAvailable: true