Flutter 颤振安全存储
如何在FutureBuilder之外的任何其他功能中从安全存储中获取数据Flutter 颤振安全存储,flutter,Flutter,如何在FutureBuilder之外的任何其他功能中从安全存储中获取数据 Future<void> login() async { print('LOGGGGINNNNNNNNNNNN'); print(read('TOKEN')); } Future read(String storageName) async { return await _storage.read(key: storageName); }
Future<void> login() async {
print('LOGGGGINNNNNNNNNNNN');
print(read('TOKEN'));
}
Future read(String storageName) async {
return await _storage.read(key: storageName);
}
Future login()异步{
打印('LOGGGGINNNNNNNNNNNN');
打印(读取(‘标记’);
}
未来读取(字符串存储名称)异步{
return wait_storage.read(键:storageName);
}
打印结果:“Future”的实例您应该改为这样做
Future login()异步{
打印('LOGGGGINNNNNNNNNNNN');
打印(等待读取(“令牌”);
}
未来读取(字符串存储名称)异步{
返回_storage.read(键:storageName);
}
由于read
返回未来,它将打印您当前看到的内容,因此您需要等待其完成。解决方案
Future readStorage(String storageName) async {
return await _storage.read(key: storageName);
}
Future getToken() async {
final _storage = new FlutterSecureStorage();
await Future.sync(() async => _token = await _storage.read(key: 'TOKEN'));
}
Future<void> login() async {
getToken().then((value){
print(_token);
if(_token == 'Not Authenticated' || _token == null)
{
setState(() {
_isAuthenticated = false;
});
}
else {
setState(() {
_isAuthenticated = true;
});
}
});
}
Future readStorage(字符串storageName)异步{
return wait_storage.read(键:storageName);
}
Future getToken()异步{
最终存储=新存储();
wait Future.sync(()async=>_token=wait_storage.read(key:'token'));
}
Future login()异步{
getToken()。然后((值){
打印(_令牌);
if(_-token=='notauthenticated'| | | u-token==null)
{
设置状态(){
_isAuthenticated=false;
});
}
否则{
设置状态(){
_isAuthenticated=true;
});
}
});
}
好的,但我正在使用它登录。我如何才能等待完成?或者有任何持续时间使其花费很短的时间?您可以等待调用登录()
等待未来。sync(()async=>_token=wait_storage.read(键:'token')代码>这不好