You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Flutter Secure Storage中存储非字符串类型的数据

Flutter Secure Storage 非字符串类型存储说明

核心结论

Flutter Secure Storage 原生仅支持字符串类型的键值对存储,无法直接写入布尔、数值、自定义对象等非字符串类型数据,但可以通过类型转换的方式间接实现任意类型数据的安全存储。

布尔值(登录状态)适配方案

针对登录状态这类布尔值场景,直接做字符串互转即可:

  • 存储时调用布尔值的toString()方法,将true转为"true"、false转为"false"存入
  • 读取时将取出的字符串与"true"做全等判断,即可得到对应的布尔值

代码示例

import 'package:flutter_secure_storage/flutter_secure_storage.dart';

final _storage = const FlutterSecureStorage();

// 存储登录状态
Future<void> setLoginStatus(bool isLoggedIn) async {
  await _storage.write(
    key: 'user_login_status',
    value: isLoggedIn.toString(),
  );
}

// 读取登录状态
Future<bool> getLoginStatus() async {
  final String? statusStr = await _storage.read(key: 'user_login_status');
  // 无存储记录时默认返回未登录,可根据业务调整默认值
  return statusStr == 'true';
}

复杂类型扩展方案

如果需要存储列表、自定义对象等复杂结构,可借助dart:convert先将数据序列化为JSON字符串,读取时再反序列化回原数据类型即可。


内容的提问来源于stack exchange,提问作者Shubham mogarkar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 23:48:02