【问题标题】:Can I combine SharedPreferences and Firestore when saving data?保存数据时可以结合 SharedPreferences 和 Firestore 吗?
【发布时间】:2021-01-04 21:53:36
【问题描述】:

我是一名初学者,目前正在开发一个测验应用程序。 每个测验包含 50 个问题,我使用 Room 数据库存储它们。 我有要保存的每个测验(以及用户信息)的硬币、星星以及已完成问题的分数和数量。 而且我仍然不知道最好的方法是什么。

我正在考虑结合 SharedPreferences 和 Firestore 来保存用户的进度和信息,SharedPreferences 将它们保存在本地,以及 Firestore 以便当用户在另一台设备上登录时,将检索他的所有进度和信息(并保存在 SharedPref )。

(**当用户仅使用 Google 登录时,数据将保存在 Firestore 中)

现在我的问题是: 保存数据时可以结合 SharedPref 和 Firestore 吗?这样做是个好主意吗? 如果没有,我应该只使用 Firestore 吗?

【问题讨论】:

  • 是的。随时保存数据到他们俩!

标签: java android firebase google-cloud-firestore sharedpreferences


【解决方案1】:

我可以在保存数据时结合 SharedPref 和 Firestore 吗?

是的,你可以,但我根本看不到任何好处。你说:

Firestore,以便当用户在另一台设备上登录时。

要让数据无论用户使用什么设备都可用,这意味着每次用户关闭应用时,您都应该将进度保存在 Firestore 中。所以我看不出你为什么要使用另一种数据结构。除此之外,SharedPreferences 不会随着应用程序卸载而持续存在。 SharedPreferences 数据总是被删除。

只有当您想将进度存储在 SharedPreferences 中并仅在完成后将测验提交到 Firestore 时,这才是一个绝妙的主意。这样,您只需支付一次写入操作的费用,这听起来很完美。但是,无论用户使用什么设备,此解决方案都没有提供让进度可用的功能,因为它只存储在单个设备上。

【讨论】:

    【解决方案2】:

    Firestore 具有一项功能,它会自动将数据存储在设备的缓存中,因此当您的用户离线时,他们仍然可以查看上次访问的内容。由于当您的用户下线时,firebase 已经处理好了,所以我建议您使用 firestore only 路由。

    您可以在此处阅读有关 firestore 离线缓存的更多信息(观看视频,非常棒): https://firebase.google.com/docs/firestore/manage-data/enable-offline

    【讨论】:

      猜你喜欢
      • 2011-08-20
      • 2020-03-29
      • 2018-12-11
      • 1970-01-01
      • 1970-01-01
      • 2015-06-01
      • 2023-01-02
      • 2013-09-27
      • 2012-12-18
      相关资源
      最近更新 更多