Параметры флаттера только для заводских методов могут иметь параметры - PullRequest
1 голос
/ 18 марта 2020

Поэтому я пытаюсь использовать moor для создания зашифрованной базы данных и использовать Injectible / GetIt, чтобы иметь возможность внедрять ее в другие классы.

У меня есть класс-оболочка

@Singleton.lazy(signalsReady: true)
class BillingDatabaseModule {
  static BillingDatabase _billingDatabase;

  BillingDatabase get billingDatabase => _billingDatabase;

  @factoryMethod
  static  BillingDatabaseModule billingDatabaseInit(@factoryParam String code) {
    var instance = BillingDatabaseModule();
    _billingDatabase = BillingDatabase(code);
    GetIt.instance.signalReady(instance);
    return instance;
  }
} 

Это вызывает следующую ошибку

Injectable Generator ---------------------------------------------------
Error generating [BillingDatabaseModule]! only factories can have parameters
------------------------------------------------------------------------ 

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

Моя опция резервного копирования - создать сильную случайную строку и сохранить ее в безопасном хранилище. Я имею в виду, я уже делаю это для булавки в любом случае.

...