Изоляция и управление коллекциями CRUD, выполненное зарегистрированным пользователем - Firebase и Flutter - PullRequest
0 голосов
/ 04 августа 2020

Я новичок в Firebase, и мне просто нужно понять, как работает Firebase DB в целом.

Допустим, у меня разные коллекции

  • пользователей
  • клиентов
  • items
  • транзакций

Для каждого из вышеперечисленных я создал класс модели в моем приложении Flutter, каждое из которых имеет соответствующие поля. В моем приложении настроен FirebaseAuth, который обрабатывает вход, выход, вход в систему ...

Как Firebase узнает, какие клиенты и элементы принадлежат currentUser ()? Сохраняет ли он автоматически и сопоставляет uid currentUser () со всеми данными CRUD, выполненными этим пользователем, или мне нужно вручную включать uid текущего пользователя в качестве поля в каждый из моих классов модели, как в приведенном ниже примере?

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

Например, вот мой класс продаж

class Sales {
  String id;
  String totalAmount;
  Customer customerId;
  Items items;
  Timestamp createdAt;
}

Спасибо.

1 Ответ

1 голос
/ 04 августа 2020

Firestore не знает, какому пользователю Firebase Authentication принадлежат данные. Если вам нужна такая информация, вам придется сохранить ее самостоятельно, добавив соответствующие поля в документы.

Если вы хотите принудительно установить эти отношения, вы захотите сохранить их в полях DocumentReference, а затем используйте правила безопасности , чтобы обеспечить соблюдение ваших правил в отношении отношений.

...