使用 ISAR 数据库提供离线 Flutter 支持
译文 https://medium.com/@tkarmakar27112000/flutter-offline-support-using-isar-database-b79f5006d3a
前言
这是我的口头禅,我试图遵循我的 应用 application 。对于那些针对二三线城市的面向客户的应用程序,应优先考虑离线支持。
我们可以使用像 SQLite 这样的关系数据库,也可以使用由 Hive、甚至 Isar 提供的非关系数据库。
在这个博客中,我们将深入研究工作原理,了解 Isar 数据库的使用过程和易用性。
正文
什么是 Isar 数据库?
ISAR 数据库是一个超快速的跨平台 Flutter 数据库。
以下是 Isar 的一些特色和亮点,
-
为 Flutter 而生 -
高度可 extension -
特色丰富 -
支持全文搜索 -
ACID 语义学 -
静态类型 -
Something 异步 -
开放源码
实施
让我们看看如何可以轻松地实现在我们的 Flutter 应用程序 Isar 数据库。
首先,我们必须了解我们的应用程序应该能够执行什么。
故事时间。
对于本教程,我们有一个药物库存应用程序,是由代表使用添加,删除和更新他们的药物库存。
假设该代表将访问偏远地区销售这种药物,我们必须实施完整的离线支持,使他可以执行所有的过程离线和数据得到自动更新,当有互联网连接。
数据流
-
应用程序启动并检查数据。如果是,它从数据库中获取所有药物并存储在 Isar。如果没有,它将从 Isar 获取数据并填充数据。 -
保存在 ISAR 数据库中的数据包含一个 isSynces 标志,该标志表示数据与 firebase 同步的天气。 -
每当一种新的药物被添加,如果有互联网,它会同时更新 Isar 和火力基地,否则它会更新 Isar 与 isSynced 标志为假。 -
剪辑也一样。 -
删除每个删除的项目将添加到一个列表中,并从 Isar 删除。一旦有了连接,它就会更新数据库。 -
为了使数据始终保持同步,每隔 30 秒使用一个定时器检查连接情况,并且整个数据库与在线数据库同步。
我们开始编程吧
我将假设您已经创建了该项目和集成的 Firebase,因此我们有权访问 Firebase 的 firestore。
让我们集成网络检查器,以便让连接状态始终存在。
为此我们将使用,
-
connectivity_plus
https://pub.dev/packages/connectivity_plus