Итак, я пытаюсь создать приложение для социальных сетей, и я видел очень много разных способов реализации архитектуры приложения. Я относительно новичок во Флаттере, поэтому я был бы очень признателен, если бы кто-то из опытных мог подписать мой подход (я хочу убедиться, что он масштабируемый).
В настоящее время у меня есть класс 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.
Я очень открыт для любых предложений / улучшений!