How can I clear the current state of my providers manually in my Flutter app? The use case I have is when a user signs out of my app then signs up as a new/different user the previous users state is still stored in the providers, it is cleared automatically when the app is restarted however.
there are my providers:
`
class GlobalProviderApp {
static providers() => [
/// global modules
Provider.value(value: RepositoryImp),
/// pos modules
ChangeNotifierProvider(create: (_) => SyncDataController()),
ChangeNotifierProvider(create: (_) => LoginController()),
ChangeNotifierProvider(create: (_) => AuditLogController()),
ChangeNotifierProvider(create: (_) => ForgetPasswordController()),
ChangeNotifierProvider(create: (_) => SignupController()),
ChangeNotifierProvider(create: (_) => TargetController()),
ChangeNotifierProvider(create: (_) => ClassificationController()),
ChangeNotifierProvider(create: (_) => CurrencyController()),
ChangeNotifierProvider(create: (_) => CustomerController()),
ChangeNotifierProvider(create: (_) => DepartmentController()),
ChangeNotifierProvider(create: (_) => EmployeeController()),
ChangeNotifierProvider(create: (_) => OrderBillController()),
ChangeNotifierProvider(create: (_) => ItemController()),
ChangeNotifierProvider(create: (_) => PriceController()),
ChangeNotifierProvider(create: (_) => PayMethodsController()),
ChangeNotifierProvider(create: (_) => WarehouseController()),
ChangeNotifierProvider(create: (_) => SupplierController()),
ChangeNotifierProvider(create: (_) => UnitsController()),
ChangeNotifierProvider(create: (_) => BackupController()),
ChangeNotifierProvider(create: (_) => MainModule()),
ChangeNotifierProvider(create: (_) => MainController()),
ChangeNotifierProvider(create: (_) => BranchController()),
ChangeNotifierProvider(create: (_) => PermissionController()),
ChangeNotifierProvider(create: (_) => SettingsController()),
ChangeNotifierProvider(create: (_) => PosController()),
ChangeNotifierProvider(create: (_) => AccountController()),
ChangeNotifierProvider(create: (_) => AccountController()),
ChangeNotifierProvider(create: (_) => AccountTypeController()),
ChangeNotifierProvider(create: (_) => BranchSupplierController()),
ChangeNotifierProvider(create: (_) => ContactSupplierController()),
ChangeNotifierProvider(create: (_) => PriceTypeController()),
ChangeNotifierProvider(create: (_) => TypeCustomerController()),
ChangeNotifierProvider(create: (_) => TypeSupplierController()),
ChangeNotifierProvider(create: (_) => ShelveController()),
ChangeNotifierProvider(create: (_) => CashierController()),
ChangeNotifierProvider(create: (_) => ShelveController()),
ChangeNotifierProvider(create: (_) => PaymentVoucherController()),
ChangeNotifierProvider(create: (_) => ReceiptVoucherController()),
ChangeNotifierProvider(create: (_) => DailyEntryController()),
ChangeNotifierProvider(create: (_) => SaleReturnBillController()),
ChangeNotifierProvider(create: (_) => PurchaseReturnBillController()),
ChangeNotifierProvider(create: (_) => PurchaseBillController()),
ChangeNotifierProvider(create: (_) => QuotationBillController()),
ChangeNotifierProvider(create: (_) => TaxController()),
ChangeNotifierProvider(create: (_) => CompanyController()),
ChangeNotifierProvider(create: (_) => ASCollectiveController()),
ChangeNotifierProvider(create: (_) => ASDetailsController()),
ChangeNotifierProvider(create: (_) => FinalSalesController()),
ChangeNotifierProvider(create: (_) => JournalEntryController()),
ChangeNotifierProvider(create: (_) => VoucherController()),
ChangeNotifierProvider(create: (_) => CustomerReportController()),
ChangeNotifierProvider(create: (_) => SupplierReportController()),
ChangeNotifierProvider(create: (_) => ProductReportController()),
ChangeNotifierProvider(create: (_) => BillCollectiveController()),
ChangeNotifierProvider(create: (_) => TrialBalanceController()),
ChangeNotifierProvider(create: (_) => BillCustomerDetailsController()),
ChangeNotifierProvider(create: (_) => WarehouseTypeController()),
ChangeNotifierProvider(create: (_) => ChannelController()),
ChangeNotifierProvider(create: (_) => ChannelItemController()),
ChangeNotifierProvider(create: (_) => WarehouseDisposalController()),
ChangeNotifierProvider(create: (_) => AccountFreePageController()),
ChangeNotifierProvider(create: (_) => WarehouseSupplyController()),
ChangeNotifierProvider(create: (_) => CustomerOrderController()),
]..addAll(providerGateway());
static providerGateway() => [
ChangeNotifierProvider(create: (_) => ServiceMainController()),
ChangeNotifierProvider(create: (_) => OrderReportController()),
ChangeNotifierProvider(create: (_) => PaymentReportController()),
ChangeNotifierProvider(create: (_) => RemittanceReportController()),
ChangeNotifierProvider(create: (_) => OrderController()),
ChangeNotifierProvider(create: (_) => ConfirmPurchaseController()),
ChangeNotifierProvider(create: (_) => SendPurchaseController()),
ChangeNotifierProvider(create: (_) => PaymentController()),
ChangeNotifierProvider(create: (_) => RemittanceController()),
ChangeNotifierProvider(create: (_) => ReceiveRemittanceController()),
ChangeNotifierProvider(create: (_) => SendRemittanceController()),
ChangeNotifierProvider(create: (_) => SettingGatewayController()),
];
}
and i use theme here:
runApp(MultiProvider(
providers: GlobalProviderApp.providers(),
child: MyApp(),
));```
can you help me please,,how can i dispose the all provideres when i logout?
New contributor
Asma’a Abdullah is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.