【问题标题】:Merging 2 Flutter Apps with Hive in one single App将 2 个 Flutter 应用程序与 Hive 合并到一个应用程序中
【发布时间】:2022-12-23 20:01:02
【问题描述】:

我在 Flutter 中有主要应用程序使用 Hive 作为数据库,我想将另一个也有 Hive 作为数据库的应用程序合并到这个主要应用程序中。我在 Hive 方面没有经验,所以我真的不知道我需要做什么来合并两者。

上面的代码是来自主应用程序的main.dart

    Hive
    ..init(document.path)
    ..registerAdapter(PostsAdapter());
  await Hive.openBox(appState);

这是来自另一个main.dart 的:

void main() async {
  //   hive initialization
  await Hive.initFlutter();
  Hive.registerAdapter(TodoAdapter());
  await Hive.openBox<Todo>(HiveBoxes.todo);
  runApp(TodoApp());
}

我试图运行该应用程序并收到此错误:

HiveError:找不到框。你忘了打电话给Hive.openBox()吗?

我在第二个应用程序的文件夹中有一个boxes.dart,代码如下:

class HiveBoxes {
  static String todo = 'todo_box';
}

【问题讨论】:

    标签: flutter dart flutter-hive


    【解决方案1】:

    Hive 使用“盒子”的概念在数据库中存储数据。盒子类似于SQL database 上的表格,只是盒子缺少严格的结构。这意味着框是flexible,只能处理数据之间的简单关系。

    在访问存储在盒子中的数据之前,您必须打开它。这会将盒子的整个content从本地存储加载到内存中,以便可以轻松访问盒子中存在的任何数据。

    以下示例显示如何打开名为 peopleBox 的框并从中获取参数名称:

    var box = await Hive.openBox('peopleBox');
    String name = box.get('name');
    

    【讨论】:

    猜你喜欢
    • 2022-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-01
    • 2014-05-06
    • 2022-12-12
    • 1970-01-01
    相关资源
    最近更新 更多