使用 Flutter 时我都有哪些存储数据的选项? (iOS和Android)[关闭]

Posted

技术标签:

【中文标题】使用 Flutter 时我都有哪些存储数据的选项? (iOS和Android)[关闭]【英文标题】:What are my options for storing data when using Flutter? (iOS and Android) [closed]使用 Flutter 时我有哪些存储数据的选项? (iOS和Android)[关闭] 【发布时间】:2018-12-18 14:43:33 【问题描述】:

我还是 Flutter 环境的新手,在使用 Flutter 构建应用程序时很难找到有关存储选项的信息。

类似于has been asked for react native,我想知道我的选择是什么

数据持久性 远程或语言环境 离线行为(如果适用) 数据库安全 应用性能 定价 实时同步 与第三方库和 Flutter 模块的兼容性 还有什么...

我搜索了flutter packages for database,但没有发现它很有帮助。任何答案、指南和参考将不胜感激。

【问题讨论】:

你试过 sqlite 了吗? 虽然问题写得很好,但它不属于所以没有有限的答案。这应该更多是中等帖子或类似帖子的主题。不是这样的问题。 像 react native 一样,可以使用 firebase。谷歌颤振火力基地。 好问题。我只对寻找颤振的 ORM 感兴趣,因为这将解决数据库问题。有了功能性 ORM,您就可以使用任何数据库。 我不能对评论投反对票,所以在文本中这样做 - 强烈反对 Rémi Rousselet。我认为 SO 询问“我的选择是什么”的正确位置。 OP 并不要求对“最佳”进行比较判断,而只是列出现在可用的内容以及性能等任何确凿事实。 【参考方案1】:

我在 GitHub 上有一个开源项目,请务必查看 - A flutter project with Implementation of a Contacts app in 4 ways (API, Custom, Preferences and Sqflite).

在这个示例项目中,我使用了 4 种方式在 Flutter 中存储数据,如下所示 -

    REST API ->  (您可以将数据存储在服务器上并使用 REST API 执行 CRUD 操作)HTTP Package for REST APIs Integration in Flutter

    首选项 ->   (将您的数据存储在共享首选项中)Shared Preferences Package in Flutter

    Sqlite ->   (将您的数据存储在 SQLite 数据库中)Sqflite Package in Flutter

    自定义 ->   (将您的数据存储在临时对象中,但只能在应用运行时访问)

【讨论】:

嗨,我怎样才能实现第四点,即将您的数据存储在临时对象中,但它只能在应用程序运行时访问任何示例? @VijayAnkith 检查以下 repo 的源代码 - github.com/harsh159357/contacts 休息 api。处理图片存储容易吗? @RokasDevolskis rest api 是存储图像的简单方法,但在我的示例项目中,我以 BLOB 方式进行(您可以将图像直接存储在数据库中的表中)。但我可能会建议您使用一些图像托管服务来存储图像,并使用该图像托管服务图像 url 保存在您的表中【参考方案2】:

您可以将shared_preferences 用作React Native 异步存储的等效项,您可以阅读更多here。 sqflite 是让本地数据库离线使用的好方法。 您可以使用firebase 插件进行在线数据存储和同步。

【讨论】:

【参考方案3】:

要存储大型数据库,您可以使用 here 中解释的 SQFlite Helper。

【讨论】:

【参考方案4】:

我曾经在 Realm Xamarin 团队工作,目前正在 Xamarin Forms 应用和 Swift 应用中使用 Realm,所以当我开始思考 Flutter 时,我研究了它。

Realm 截至 2018-12 年不支持 Flutter,原因与任何其他基于 C 的数据引擎都会遇到困难的原因相同 - 根据 this issue,问题是 Flutter 支持不佳。

必要的第一步可能是Dart VM FFI issue。

有一个很长的 issue tracker thread 请求将其添加到 Realm 和 forum discussion。

不出所料,目前有 Firebase 和 SQLite 支持。

【讨论】:

以上是关于使用 Flutter 时我都有哪些存储数据的选项? (iOS和Android)[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

在高度关注安全性的环境中,我都有哪些跨浏览器测试选项

使用 WinUI3/Project Reunion 0.5 时,我都有哪些选择/打开文件和文件夹的选项?

Flutter 应用后端都有哪些选项? [关闭]

对于浏览器中的可索引本地存储,我都有哪些选择?

在关系数据库中存储分层数据的选项都有哪些?

键->值数据都有哪些好的、快速的持久存储选项? [关闭]