Firebase存储与游戏数据数据库

时间:2018-12-20 11:06:14

标签: swift firebase firebase-realtime-database firebase-storage

我开发了多个游戏,简单的游戏,所有游戏都带有本地存储。当用户启动该应用程序时,我会在Documents Directory中创建一个local_user.dat文件,并在用户获得更多货币,购买皮肤等时对其进行更新。

如果用户删除该应用程序并稍后再次安装,则他将失去所有进度。有点明显。因此,为了避免这种情况,我想在线存储数据。万一他删除了该应用程序,我将在服务器上进行备份。当用户重新安装该应用程序时,我将下载备份文件,而不是从零开始

经过一番搜索,我发现Firebase可以帮我解决这个问题。我的问题是这两种方法中哪一种对我更有效,为什么呢?

这是我的local_user.dat的一部分:

  "song_1_cost" : 100,
  "quote_2_owned" : false,
  "sound_on" : true,
  "song_11_owned" : false,
  "song_3_cost" : 250,
  "skin_2_cost" : 200,
  "song_5_cost" : 100,
  "song_equipped" : 0,
  "skin_4_cost" : 500,
  "song_7_cost" : 250,
  "quote_1_cost" : 100,
  "quote_4_cost" : 200,
  "song_9_cost" : 100,
  "quotes_equipped" : 1,
  "shuffle_enabled" : false,
  "song_12_cost" : 250,
  "tutorial" : true,
  "game_center_enabled" : false,
  "zen_level" : 1, etc

我的local_user.dat可能有所不同,从包含30个密钥到100个密钥,平均大小为1.5 kb。

这两个功能中哪一个最适合我的游戏?

  • 存储-将我的local_user.dat保存到Firebase存储中,并不断用更新的版本替换

  • 数据库-使用用户数据和创建json:

    1. 更新整个json
    2. 更新已修改的json键

1 个答案:

答案 0 :(得分:0)

实时数据库和云存储都可以适用于您的方案。将其存储在数据库中的优势在于,您可以查询/访问用户游戏数据中的特定元素,例如仅查询其zen_level值。

如果用例不是必需的(似乎不是必需的),我可能会选择更便宜或更简单的选项(根据您的非功能需求)。云存储肯定更便宜,正是因为它没有提供与数据库相同的功能。