我的 Flutter 应用程序应该使用哪个数据库?

jul*_*n98 4 database backend flutter

我正在Flutter中制作一个应用程序,需要保存用户在应用程序中输入的日常数据。用户每天需要执行 10 项操作。

该应用程序需要:

  • 保存用户在这 10 个操作中输入的日常数据。
  • 对数据进行每日、每周、每月、每季度和每年的汇总,并按每个操作进行划分。

在应用程序开发之初,我考虑使用 Firebase,但我觉得这不是最好的选择。

Zak*_*ain 9

如果您的应用程序只需要支持离线数据保存机制,不需要任何互联网连接,那么您可以使用:

  • Isar(它是一个无sql/非关系本地/离线数据库,具有交互式检查器编辑器)
  • Object Box(它是一个无sql/非关系型本地/离线数据库)
  • Hive(它是一个无sql/非关系型本地/离线数据库)
  • Sqflite(它是一个sql/关系型本地/离线数据库)
  • Drift(它是一个建立在 sqlite 之上的 sql/关系本地/离线数据库)

否则你可以使用:

  • Firebase(它是一个无sql/非关系型在线后端即服务)
  • AWS Amplify(它是基于云的后端即服务)
  • Parse Server(它是一种 sql/关系型在线后端即服务)
  • Realm(它是一个基于无sql/非关系型mongodb的在线后端即服务)
  • AppWrite(它是一个无sql/非关系型在线后端即服务)
  • Supabase(它是一个在线后端即服务)

如果你想编写基于 dart 的自定义后端:

  • Dart Frog(这是一个简约的后端框架)
  • Serverpod(这是一个基于sql的后端框架)

如果您来自 Java/Native Android 或 React Native 背景:

  • Spring Boot(它是一个基于Java的企业级后端框架)
  • Nest JS(它是一个基于 Node JS 的先进可靠后端框架)

根据您提供的信息,我认为FirebaseAWS Amplify(用于在线后端即服务)和Isar(用于本地数据库和 flutter Web 支持,使用SqfliteDrift而不是 Isar)将是不错的选择。

  • 是的,避免蜂巢!它会意外删除您的数据。github 上有大量未解决的问题。我没有意识到 hive 已被弃用,因为它在 pub.dev 上仍然具有 100% 的受欢迎程度。 (3认同)
  • 我和伊萨尔一起去了,但我后悔了。我选择漂移是因为它在底层使用了经过尝试和测试的 SQLite。还需要做一些设置,但 Isar 和 Hive 有点混乱,没有网络支持,尽管它说有。 (2认同)