создание структуры и получение данных в Firestore - PullRequest
0 голосов
/ 10 июня 2018

Я новичок в Firestore & Firebase.Я из Sql Background и планирую создать новое приложение IONIC,Angular.Я решил использовать либо firebase or firestore, но чувствую, что firestore имеет некоторые ограничения при извлечении запросов, если я думаю из SQL-фона.Позвольте мне прийти к моему требованию.Это просто с точки зрения SQL.

У меня есть user таблица

user -> UID,FirstName,LastName,Age,DateCreated,Status,Email

У меня есть другая таблица как Products

Products -> PID, ProductName,ProductDescriptio,Price,UID

, если вы заметилиТаблица продуктов, которую вы можете понять, UID - это ключ от таблицы пользователя.Вот как это определено в SQL.

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

Iпонять структуру стиля filestore is a collection ->document ->Collection ->document.

Как создать структуру и выполнить запрос в FireStore с помощью Angular.Это возможно в firestore / firebase или должно снова вернуться в Sql.

Спасибо

1 Ответ

0 голосов
/ 10 июня 2018

В вашем случае у вас есть отношения 1 ко многим.Это позволяет вашему пользовательскому документу иметь коллекцию продуктов.Извлечь коллекцию товара для конкретного пользователя очень просто:

db.collection('users').doc(userId).collection('products')

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

В пожарном магазине не существует понятия отношений «многие ко многим», их нужно будет моделировать вручную.Для извлечения данных вам нужно будет пройти через конец отношения и выбрать другой конец в этом цикле.Это нет-нет в земле SQL, но в большинстве случаев это нормально для Firestore из-за соединения с веб-сокетом.

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

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

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

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