问题标签 [flutter-objectbox]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
241 浏览

flutter - 在 Flutter 应用中关闭 Store 实例的最佳实践是什么?

我正在使用 ObjectBox 数据库构建一个 Flutter 应用程序。

应用调用openStore(); 在启动时,并将 Store 实例保存在单例类中,以便我可以从任何地方访问它。

但我不确定何时调用store.close();

在 iOS 中,我们可以使用applicationWillTerminate(_:)在应用程序终止之前执行代码

不幸的是,Flutter 并没有为我们提供这样的东西。

我在预期寿命最长的 StatefulWidget 中尝试了下面的代码,但它有时会更快地处理,并且应用程序无法访问数据库。

我的问题是...

  1. 调用store.close()的最佳做法是什么?
  2. 如果我不关闭商店会怎样?我的应用程序会失去数据持久性吗?
0 投票
1 回答
432 浏览

flutter - 如何使用预先填充的本地数据库设置 dart objectbox?

我想用 Flutter 建立一个 ObjectBox 数据库。我想用值预先填充数据库文件。安装应用程序时,数据库文件将被复制并由应用程序使用。我希望能够继续提供模式迁移。是否可以 ?

如何建立这种类型的架构?你有什么例子吗?

解决方案:通过@vaind 响应,我实现了一个数据库管理器,例如:

0 投票
1 回答
93 浏览

objectbox - 我应该使用 ObjectBox 或 4 个平面文件提供的链接/反向链接来建立多对多关系吗?

我已经阅读了多对多关系的对象框文档 https://docs.objectbox.io/relations

还有这个解决方案在 noSQL firebase 中的多对多关系 Firebase 中的多对多关系

如果我对使用 Dart objectbox 库的离线数据库的所有 1:N 和 M:N 关系采用第二种方法,可能会出现什么问题?

为 1:N 关系添加一些代码

所以这里的每个订单都会有一个额外的客户 ID。每当我们需要查找客户的订单时,都会通过查询订单的客户 ID 来实现。

0 投票
1 回答
1661 浏览

flutter - 如何正确使用 ObjectBox flutter store 打开和关闭?

我希望用 Flutter 和 ObjectBox (1.1.1 -> Flutter) 定义最佳开发实践。

我想建立一个由 Repository 组成的架构来实现我对存储在数据库中的对象的查询功能。这是对象人的示例。存储库将主要从视图模型中调用。

以下是我的问题:

  • 或者用这个架构调用 _store.close ?
  • 与其有一个Initialize功能,不如在每次交易之前打开商店,然后在交易完成后关闭它?
  • 有没有使用这个最新版本的objectBox的类似结构的例子(使用openStore()。然后((Store store))

你如何看待这个实现:

0 投票
1 回答
492 浏览

flutter - ObjectBox Dart/Flutter 多隔离访问

为评论中陈述的问题创建一个单独的线程......

ObjectBox 如何处理并发(通过不同的线程/隔离)写请求?我的用例示例:FCM“onBackgroundmessage”调用在不同的隔离中运行,同时可能发生多个写入请求。在这种情况下,“Hive”完全失败了。ObjectBox 中是否有任何内置解决方案?

0 投票
1 回答
114 浏览

flutter - 如何从 objectBox 预填充数据库迁移数据和方案?

我在 Flutter/Dart 应用程序中使用 ObjectBox 作为数据库管理器。

我使用预填充的数据库 (.mdb),在安装时将其复制到应用程序目录。

  • 如何处理迁移数据库?
  • 我应该设置什么类型的架构来执行数据库中存在的数据以及方案的迁移(例如,我们可以对 Realm 执行此操作)
  • 是否有可能得到这样的东西:
0 投票
0 回答
353 浏览

objectbox - 在颤振项目中添加实体时出错

我在对象框中添加了多个实体并成功构建了 build_runner。 flutter pun run build_runner build. 现在,我又添加了两个实体,但出现此错误 -无法解析注释 @Entity()

尝试添加实体

在 build_runner build 命令之后,我收到了这个错误

[INFO] 生成构建脚本... [INFO] 生成构建脚本完成,耗时 514 毫秒

[INFO] 正在初始化输入 [INFO] 正在读取缓存的资产图... [INFO] 读取缓存的资产图已完成,耗时 138 毫秒

[INFO] 检查自上次构建以来的更新... [INFO] 检查自上次构建以来的更新完成,耗时 926 毫秒

[信息] 正在运行构建... [严重] json_serializable:json_serializable 在 lib/models/test_model/route_test_model.dart 上:

空值检查运算符 [SEVERE] json_serializable:json_serializable 在 lib/models/test_model/stop_test_model.dart 上:

空值检查运算符 [SEVERE] objectbox_generator:lib/models/test_model/stop_test_model.dart 上的解析器:

包的第 1 行第 225 列:formula_application/models/test_model/stop_test_model.dart:无法解析class StopTest. ╷ 1 │ @Entity()
│ ^^^^^^^^^ ╵ [警告] objectbox_generator:lib/models/test_model/route_test_model.dart 上的解析器:尝试获取class RouteTest (ClassElementImpl) 上的位置信息时抛出意外错误。

请在https://github.com/dart-lang/source_gen/issues/new提交问题 包括此警告的内容和堆栈跟踪以及 package:source_gen, package:analyzerfrom的版本pubspec.lock

InconsistentAnalysisException:请求的结果可能与之前返回的结果不一致

[严重] objectbox_generator:lib/models/test_model/route_test_model.dart 上的解析器:

无法解析 的注释class RouteTest。[INFO] 4.2 秒过去,4/6 动作完成。[INFO] 运行构建完成,耗时 4.5 秒

[INFO] 缓存最终依赖图... [INFO] 缓存最终依赖图完​​成,耗时 66 毫秒

[严重] 4.6 秒 pub 完成后失败,退出代码为 1

我尝试使用普通类在没有 @JsonSerializable() 注释的情况下运行相同的程序。仍然得到同样的错误。

0 投票
1 回答
70 浏览

flutter - ObjectBox 生成器:错误:没有名为“lazy”的命名参数

我使用此方法将我的 ObjectBox Store 注册为 LazySingleton

效果很好。但是在从 BuildRunner 多次重建之后,ObjectBox Generator 抛出了这个错误,不管我是否删除了单例注册并重新运行它。

0 投票
1 回答
99 浏览

flutter-objectbox - Store.watch() events detail

[Flutter/Dart] What kind of information can I get from the Store.watch() stream? Can I get entity type and entity id of insert/update/delete? Do I get a timestamp as well?

Thanks

-nat

0 投票
1 回答
274 浏览

flutter - 对于 ToOne 和 ToMany,Objectbox Saved 关系的目标为空

最近从 1.0.0 更新到 1.1.1 并且我的关系代码停止工作,我不确定我到底错过了什么,但直到项目的查询似乎正常工作。

这就是我所拥有的,我真的可以使用一些帮助来弄清楚我错过了什么

店铺创建:

以下是实体文件: InitialItem:

物品类别:

物品标签:

标签和类别已经由用户创建并保存在他们的框中。一个项目被传递到视图中,用户可以为项目添加标签,并且可以选择一个类别来保存项目。

然后该项目将选定的类别写入它的 toOne 目标并保存 - saveItem 正确地在其中包含所有内容

它的保存位置——此时,一切都已检查完毕。我可以调试并查看其变量中的标签和信息,并且可以在 itemCategory 中查看类别及其信息。

保存项目

稍后,我查询保存的每个项目,以便将它们分组到列表中。而此时它只返回InitialItem,并没有拉取关系数据。toOne 和 toMany 的目标都是空的。

然后我尝试使用返回的查询构建列表。element.itemCategory.target 返回 null,标签也是如此。正如我所说,这一切以前在版本 1.0.0 中工作,升级后失败,没有进行其他更改。一般的查询有问题吗?我可以在调试窗口中查看关系,所以我假设设置正确,它似乎并没有使用原始查询拉取对象。谁能阐明我做错了什么?

保存后直接从商店查询的项目