Flutter Hive 保存自定义对象以及重新启动应用程序后消失的自定义对象列表

Chr*_*ris 7 local-storage dart flutter flutter-hive

我在项目中使用Hive - Package 在本地存储一些数据。到目前为止,一切都很好,但现在我面临一个问题:

我有一个Custom-Class其中也有一个字段与另一个Custom-Class

part 'hive_vitals_interface.g.dart';

@HiveType(typeId: 1)
class HiveVitals extends HiveObject {
  @HiveField(0)
  String? id;
  @HiveField(1)
  DateTime? date;
  @HiveField(2)
  List<HiveDiscomfort> otherDiscomfort;
  @HiveField(3)
  List<HiveDiscomfort> mentalDiscomfort;

  HiveVitals({
    this.id,
    this.date,
    this.otherDiscomfort = const [],
    this.mentalDiscomfort = const [],
  });
}
Run Code Online (Sandbox Code Playgroud)

和我的HiveDiscomforts-Class

part 'hive_discomfort_interface.g.dart';

@HiveType(typeId: 2)
class HiveDiscomfort extends HiveObject {
  @HiveField(0)
  String? title;
  @HiveField(1)
  int? intensity;

  HiveDiscomfort({
    this.title,
    this.intensity,
  });
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试这样保存: HiveVitals

  static Future<void> addVitals(HiveVitals hiveVitals) async {
    final vitalsBox = getVitalsBox();

    await vitalsBox.put(hiveVitals.date!.toIso8601String(), hiveVitals);

  }
Run Code Online (Sandbox Code Playgroud)

并像这样检索它:

  static List<HiveVitals> getVitals() {
    Box<HiveVitals> box = getVitalsBox();
    List<HiveVitals> hiveVitals = box.values.toList();
    return hiveVitals;
  }
Run Code Online (Sandbox Code Playgroud)

问题:

我没有收到任何错误。事实上,当保存我的对象并在调试器中检查它时,所有内容都已正确保存。然而,当重新启动应用程序时,我的List<HiveDiscomfort>字段总是再次为空!但其余的HiveVitals-Fields 仍然保存正确!?

我在这里缺少什么?我不明白...任何帮助表示赞赏!需要帮助请叫我!

还在 Github 上开了一个问题

小智 0

我认为这是软件包的问题,​​因为我也有同样的问题,一切正常,但重新启动应用程序后,数据就会消失。所以我在 hive flutter github 上问了这个问题,但还没有答案。所以我要求你在 hive flutter github 上提出一个问题,让他们知道这是我们面临的一个真正的问题。