Flutter连接到服务器中的数据库

时间:2018-03-21 19:37:33

标签: mysql flutter

我是新手,我真的想知道,有没有办法连接到数据库服务器(例如mysql),而不是使用firebase。我正在开发一个智能停车系统项目,我需要将停车区的纬度和经度插入到服务器中创建的数据库中,并在用户请求时检索它。如果有人为上述问题提供解决方案(使用数据库Flutter)会很棒。

3 个答案:

答案 0 :(得分:3)

由于Flutter只是一个UI框架,因此持久性和数据库等主题可能超出范围或可能取决于用例。

Flutter UI可以在短时间内持久保存数据(应用程序状态),这种方式实际上只对创建良好的用户体验有用(点击此按钮是绿色吗?等等)

为了在应用程序之外和实际设备上保留更多有用的数据,您可能需要考虑Shared Preferences Plugin for Flutter

  

包装NSUserDefaults(在iOS上)和SharedPreferences(在Android上),   为简单数据提供持久存储。数据持续存在   磁盘自动和异步。

现在,如果您需要以任何集中方式保存数据(例如RDMS,Firebase或任何数据持久性服务),您的选项是:

  • 具有Flutter插件的持久性选项(例如Firestore,Firebase)
  • 使用HTTP gRPC构建您自己的服务层,该{{3}}与一些提供数据存储访问权限的后端服务进行通信。您可以使用Express,Rails,CloudFunction等执行此操作。
  • 至于直接连接到MySQL这样的数据库,我不明白为什么你不能这样做(也许有一些技术限制),但在任何实际情况下这都是一个非常糟糕的主意(不像Firebase / Firestore)一旦任何客户端应用程序具有写访问权限,您将无法保护您的数据存储。

听起来你需要一个中央读/写数据存储,所以你最好的选择是托管一个提供数据库访问权限的服务器,同时向Flutter公开一个API,你可以使用dart:io来制作请求。

答案 1 :(得分:0)

尝试使用sqflite。您可以在Flutter应用程序中包含该程序包,该程序包使您可以将数据持久保存到本地设备。您还将需要使用path_provider。这是Github https://github.com/tekartik/sqflite

上存储库的链接。

答案 2 :(得分:0)

我听说Android和iOS不允许直接访问DBMS。 我们只能使用HTTP / HTTPS或RPC协议。 因此,我们需要一种使用https协议的服务(url),并且该服务可以通过TCP / IP协议连接到DBMS。

我相信Firebase是服务+ dbms,不仅是dbms。 我用graphql-prisma-mysql组合提供服务。太棒了。 然后,我正在尝试Flutter客户端访问该服务....