flutter如何集成realm_dart数据库

在Flutter项目中如何正确集成realm_dart数据库?我按照官方文档添加了依赖并进行了配置,但运行时总是报错"Native library not loaded"。尝试过flutter clean和重新安装依赖,问题依旧存在。请问具体的集成步骤是什么?是否需要额外的原生配置?有没有完整的示例可以参考?

2 回复

pubspec.yaml 中添加依赖:

dependencies:
  realm: ^1.0.0

然后运行 flutter pub get 安装包。创建 Realm 配置和模型类即可使用。

更多关于flutter如何集成realm_dart数据库的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter中集成Realm Dart数据库,需要以下步骤:

1. 添加依赖

pubspec.yaml 文件中添加依赖:

dependencies:
  realm: ^1.0.0

运行 flutter pub get 安装依赖。

2. 初始化配置

Android配置(可选)

android/app/src/main/AndroidManifest.xml 中添加网络权限(若需要同步):

<uses-permission android:name="android.permission.INTERNET"/>

iOS配置(可选)

ios/Runner/Info.plist 中添加:

<key>NSAppTransportSecurity</key>
<dict>
  <key>NSAllowsArbitraryLoads</key>
  <true/>
</dict>

3. 创建数据模型

使用 @RealmModel() 注解定义模型:

import 'package:realm/realm.dart';

part 'car.realm.dart';

@RealmModel()
class _Car {
  @PrimaryKey()
  late String id;
  late String make;
  late String model;
  late int? miles;
}

4. 生成模型代码

运行命令生成 Realm 模型代码:

dart run realm generate

5. 使用数据库

打开数据库

final config = Configuration.local([Car.schema]);
final realm = Realm(config);

基本操作示例

// 写入数据
realm.write(() {
  realm.add(Car(ObjectId(), 'Toyota', 'Camry', 5000));
});

// 查询数据
final cars = realm.all<Car>();
final toyotas = realm.query<Car>('make == "Toyota"');

// 更新数据
realm.write(() {
  car.miles = 6000;
});

// 删除数据
realm.write(() {
  realm.delete(car);
});

6. 关闭数据库

realm.close();

注意事项:

  • 确保模型类使用 _ 前缀(如 _Car
  • 主键字段需用 @PrimaryKey() 标注
  • 所有操作需在 realm.write 事务中执行
  • 支持空安全(int? 表示可选字段)

同步功能(Atlas App Services)

如需同步,使用 Configuration.flexibleSync

final app = App(AppConfiguration('your-app-id'));
final user = await app.logIn(Credentials.anonymous());
final config = Configuration.flexibleSync(user, [Car.schema]);

这样就完成了 Realm Dart 在 Flutter 中的基本集成。

回到顶部