从SQLite切换到Firebase?

问题描述 投票:-1回答:1

因此,对于存储锻炼数据的Android应用程序,到目前为止我一直在使用SQLite数据库。现在我想实现这些功能:

  1. 实时提供锻炼(使用Firebase数据库)
  2. 能够在其他设备上访问您的数据,也可以在以后从Web应用程序访问

我想,为了这个目的,Firebase将非常适合。但是,在我看来,从SQLite切换到Firebase会带来一些目击:

  1. 每个用户都需要注册。我认为对于一些用户来说这是不使用我的应用程序的原因。使用Firebase为用户存储数据时无法避免注册,对吧?
  2. 我不确定Firebase数据库的离线选项有多好。没有连接,数据可以访问多长时间?容量和性能是否与SQLite数据库相当?

我认为另一种方法可能是使用Firebase来提供锻炼但是在SQLite数据库中保存关于锻炼(重复,体重......)的数据。然后我可以使用Firebase上传数据库文件,另一台设备可以下载并继续。这可能是一个选择吗?

任何想法和建议表示赞赏!

android ios sqlite firebase
1个回答
0
投票

每个用户都需要注册。我认为对于一些用户来说这是不使用我的应用程序的原因。使用Firebase为用户存储数据时无法避免注册,对吧?

对。 (从技术上讲,这是可能的,但是您需要对非注册用途启用读/写操作,这是禁止使用的,根本不推荐使用。)

我不确定Firebase数据库的离线选项有多好。没有连接,数据可以访问多长时间?容量和性能是否与SQLite数据库相当?

来自firebase数据库的文档:Firebase应用程序自动处理临时网络中断。离线时可以使用缓存数据,Firebase会在恢复网络连接时重新发送任何写入内容。

所以,是的,即使在离线时也可以继续写入它并读取已经缓存的数据,但这并不能解决用户必须注册才能使用该应用程序的问题。

Possible solution

同时使用SQLite和Firebase数据库:

  1. 对于注册用户,请始终在SQLite和Firebase中同时写入以保持同步(首先在Firebase中写入,然后在SQLite中写入)。另一种选择是每隔X分钟写入SQLite并同步到Firebase。在线时从Firebase读取数据,在离线时从SQLite读取数据。 当用户离线时,您将向SQLite写入数据。您需要将这些记录标记为未同步,以便下次连接时将它们写入firebase。 此外,重新连接时,您需要以某种方式合并firebase数据(可能已更改)和本地SQLite数据。此算法取决于您的应用程序。
  2. 对于非注册用户,仅使用SQLite。

所有这些的缺点是应用程序的复杂性增加了很多。由你来决定它是否值得。 :)

© www.soinside.com 2019 - 2024. All rights reserved.