Как структурировать базу данных firestore во флаттере, чтобы легко получить доступ к другим коллекциям, связанным с пользователем? - PullRequest
0 голосов
/ 22 июня 2019

У меня есть база данных firestore, но сейчас у нее есть только набор пользователей, документы, названные в качестве уникального электронного письма пользователя, с которым они подписаны, а затем внутри документа - другая информация.enter image description here

Для отображения профиля пользователя или редактирования профиля.Однако теперь, когда я начинаю добавлять больше функций, мне интересно, как лучше структурировать мои данные.Например, я создал коллекцию, называемую запросы, и в основном пользователь может запросить деньги у некоторых людей, или они должны деньги другим пользователям.enter image description here

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

1 Ответ

1 голос
/ 22 июня 2019

У меня есть база данных firestore, но сейчас у нее есть только набор пользователей с документами, названными электронной почтой уникального пользователя

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

Итак, как мне связать коллекцию запросов с коллекцией пользователей?

Обычно через uid.

Должен ли я включить в документ пользователя поле, называемое запросами, и получить список всех запросов через идентификаторы его документов?

Да, вы можете сделать это или просто скопировать данные. Вы можете добавить новую коллекцию в объекте пользователя, которая может содержать все запросы пользователя.

Это правдоподобно или эффективно?

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

Есть ли способ, где я могу в моем цикле кода просмотреть список запросов в пользовательском документе, а затем получить доступ к информации в коллекции запросов путем поиска определенного идентификатора документа?

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

Есть какие-нибудь идеи относительно того, какой самый эффективный способ структурировать этот код и как получить доступ к информации по коллекциям, специфичной для пользователя?

Это опять о том, что я уже ответил в посте выше.

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