Архитектура приложения Firebase / Firestore с использованием провайдера - PullRequest
0 голосов
/ 25 апреля 2020

Итак, я пытаюсь создать приложение для социальных сетей, и я видел очень много разных способов реализации архитектуры приложения. Я относительно новичок во Флаттере, поэтому я был бы очень признателен, если бы кто-то из опытных мог подписать мой подход (я хочу убедиться, что он масштабируемый).

В настоящее время у меня есть класс FirestoreAPI, это позволяет мне получить , установить, снимок документов в различных коллекциях в моей базе данных.

У меня также есть класс FirebaseAuthenticationService, который регистрирует пользователя на входе и выходе, а также сохраняет данные currentUser по всему приложению с помощью провайдера следующим образом:

(In main.dart)

@override
  Widget build(BuildContext context) {
    return MultiProvider(
      providers: [
        ChangeNotifierProvider(create: (_) => FirebaseAuthenticationService()),
      ],

Затем я могу получить доступ к данные пользователя, используя Provider.of<FirebaseAuthenticationService>(context).currentUser

Если я хочу получить / установить данные в firestore, я просто инициализирую FirestoreAPI в любом месте приложения, используя final fireStoreAPI = FirestoreAPI();, тогда у меня есть доступ к методам внутри (например, для создания поток).

Мои опасения:

  • Я видел много случаев использования пакета locator для инициализации FirebaseAPI и FirebaseAuthenticationService как LazySingletons, это это необходимо для моего использования?

  • Должен ли я также инициализировать FirestoreAPI в MultiProvider или это нормально, чтобы назвать его, как я в настоящее время?

Скажите, пожалуйста, если я не уточнил достаточно c.

Я очень открыт для любых предложений / улучшений!

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