flutter - Flutter 可注入的只有工厂方法可以有参数
问题描述
所以我尝试使用 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
------------------------------------------------------------------------
所以我的问题是在输入/创建密码之前我无法打开数据库,因为它是数据库的密码。所以我试图延迟打开它,直到我创建/输入了 pin。
我的备份选项是创建一个强随机字符串并使用安全存储进行存储。我的意思是无论如何我已经为别针做了那个。
解决方案
推荐阅读
- powershell - 在 PowerShell 中获取分发组属性并打印到文件
- c# - 使用 EF-Core 从另一个程序集迁移 SQLite 数据库
- javascript - JavaScript:当需要回调(末日金字塔)中的回调时,谁能举个例子?
- angular - 向 angular2+ 路由添加动态参数
- javascript - React-Redux API 获取请求动作不执行?
- kepler.gl - H3 索引(分辨率 8)和 kepler.gl 映射问题
- mysql - Nodejs HTML 选择列表
- ruby-on-rails - 如何使用带有 VPS 的 secret_key_base 进行部署
- angular - Ag-grid:异步 valueFormatter?
- javascript - 如何使用不同的 cli 服务 Nuxt 应用程序