flutter如何使用localstore

在Flutter中如何使用localstore来存储和读取数据?希望能提供一个简单的示例代码,包括初始化、保存数据和读取数据的基本用法。另外,localstore和shared_preferences有什么区别,在什么场景下更适合使用localstore?

2 回复

Flutter中使用localstore可通过shared_preferencessqflite插件实现。shared_preferences适合存储简单键值对,sqflite适合复杂数据结构。安装插件后,调用对应方法读写数据即可。

更多关于flutter如何使用localstore的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在 Flutter 中使用 localstore 进行本地数据存储,可以通过 localstore 包实现。以下是详细步骤:

1. 添加依赖

pubspec.yaml 文件中添加依赖:

dependencies:
  localstore: ^1.0.0

运行 flutter pub get 安装。

2. 基本用法

初始化与存储数据

import 'package:localstore/localstore.dart';

// 获取实例
final db = Localstore.instance;

// 存储数据(自动生成ID)
void saveData() async {
  final id = db.collection('users').doc().id;
  await db.collection('users').doc(id).set({
    'name': 'Alice',
    'age': 25,
  });
}

// 存储数据(指定ID)
void saveWithId() async {
  await db.collection('users').doc('user1').set({
    'name': 'Bob',
    'age': 30,
  });
}

读取数据

// 获取单个文档
void getData() async {
  final data = await db.collection('users').doc('user1').get();
  print(data); // 输出:{name: Bob, age: 30}
}

// 获取集合所有文档
void getAllData() async {
  final items = await db.collection('users').get();
  items?.forEach((key, value) {
    print('$key: $value');
  });
}

更新与删除

// 更新字段
void updateData() async {
  await db.collection('users').doc('user1').set({
    'age': 31,
  }, SetOptions(merge: true)); // merge: true 表示合并而非覆盖
}

// 删除文档
void deleteData() async {
  await db.collection('users').doc('user1').delete();
}

3. 监听数据变化

// 实时监听文档变化
void listenToData() {
  db.collection('users').doc('user1').stream.listen((data) {
    print('数据更新: $data');
  });
}

4. 特点说明

  • 基于文件存储:数据以 JSON 格式保存在设备本地。
  • 类 Firestore API:语法与 Cloud Firestore 相似,学习成本低。
  • 支持实时流:通过 stream 监听数据变更。
  • 自动 ID 生成:使用 doc() 自动创建唯一 ID。

注意事项

  • 适合存储小型数据(如用户配置、缓存)。
  • 大量数据建议使用 sqflitehive
  • 数据存储在应用沙盒内,卸载应用时会被清除。

通过以上方法,可快速在 Flutter 中实现轻量级本地数据存储。

回到顶部